#pragma comment (lib,"ws2_32.lib") //ws2_32.lib文件,提供了对以下网络相关API的支持,若使用其中的API,则应该将ws2_32.lib加入工程
#include<WinSock2.h>
#include<time.h>
#include<string.h>
#include<stdio.h>
int main(int argc, char* argv[]){
//初始化套接字数据库
WSADATA wsd; //WSADATA变量,存储被WSAStartup函数调用后返回的 Windows Sockets数据。
SOCKET s;//套接字,Socket=Ip address+ TCP/UDP port
if(WSAStartup(MAKEWORD(2,2),&wsd) != 0){
printf("WSAStartup failed! \n");
return 1;
}
//创建套接字
s = socket(AF_INET, SOCK_DGRAM, 0);//AF_INET地址族,SOCK_DGRAM是无保障的
if(s == INVALID_SOCKET){
printf("socket failed! \n", WSAGetLastError());
WSACleanup();//释放套接字资源
return 1;
}
//绑定套接字
//前四行定义服务器地址
SOCKADDR_IN servAddr;//服务器地址
servAddr.sin_family =AF_INET;//指代协议族
servAddr.sin_port = htons((short)5000);//存储端口号,htons把你机器上的整数转换成“网络字节序”,
servAddr.sin_addr.s_addr = htonl(INADDR_ANY);//存储IP地址,htonl将主机的无符号长整形数转换成网络字节顺序
if(bind(s, (SOCKADDR *)&servAddr, sizeof(servAddr)) == SOCKET_ERROR){//将套接字绑到一个已知的地址
printf("bind failed! \n", WSAGetLastError());
closesocket(s);//关闭套接字
WSACleanup();//释放套接字资源
return 1;
}
char buf[100];//接收数据缓冲区
SOCKADDR_IN clientAddr;//客户端地址
int nClientLen = sizeof(clientAddr);
ZeroMemory(buf,100);//将Destination制定的内存地址开始,Length字节长度的内存数据清零
//接收客户端请求
if (recvfrom(s, buf,100, 0, (SOCKADDR*)&clientAddr, &nClientLen) == SOCKET_ERROR){//recvfrom用于从(已连接)套接口上接收数据,并捕获数据发送源的地址。
printf("recvfrom failed! \n", WSAGetLastError());
closesocket(s);//关闭套接字
WSACleanup();//释放套接字资源
return 1;
}
//为客户端发送时间服务
if(strcmp(buf,"request")==0){
time_t t;
time(&t);
strcpy(buf,ctime(&t));
printf("%s",buf);
printf("responsed to the client! \n");
if(sendto(s, buf, 100, 0, (SOCKADDR*)&clientAddr, nClientLen) == SOCKET_ERROR){//指向一指定目的地发送数据
printf("sendto failed! \n", WSAGetLastError());
closesocket(s);//关闭套接字
WSACleanup();//释放套接字资源
return 1;
}
}
//退出
closesocket(s);//关闭套接字
WSACleanup();//释放套接字资源
system("pause");
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
编写针对DAYTIME服务的UDP客户机和服务器的实现
共71个文件
tlog:32个
pdb:4个
manifest:4个
5星 · 超过95%的资源 需积分: 17 52 下载量 87 浏览量
2014-01-02
22:02:51
上传
评论 1
收藏 18MB RAR 举报
温馨提示
编写针对DAYTIME服务的UDP客户机和服务器的实现。要求显示DAYTIME返回的日期和时间值。
资源推荐
资源详情
资源评论
收起资源包目录
gwzyQ1.rar (71个子文件)
gwzyQ1
Client
Client.vcxproj.user 143B
Client.vcxproj 4KB
Client.cpp 2KB
Client.vcxproj.filters 944B
ClassDiagram1.cd 1B
Debug
vc100.idb 371KB
Client.obj 29KB
CL.write.1.tlog 254B
CL.read.1.tlog 13KB
mt.read.1.tlog 254B
rc.write.1.tlog 234B
Client.log 834B
rc.read.1.tlog 226B
mt.command.1.tlog 348B
cl.command.1.tlog 598B
link-cvtres.read.1.tlog 2B
Client.exe.intermediate.manifest 381B
Client.lastbuildstate 46B
Client.exe.embed.manifest.res 472B
link.write.1.tlog 570B
link-cvtres.write.1.tlog 2B
Client.exe.embed.manifest 406B
link.command.1.tlog 1KB
rc.command.1.tlog 458B
link.read.1.tlog 3KB
Client_manifest.rc 202B
mt.write.1.tlog 254B
vc100.pdb 108KB
Server
Server.cpp 2KB
Server.vcxproj 4KB
Server.vcxproj.filters 944B
Server.vcxproj.user 143B
Debug
vc100.idb 371KB
CL.write.1.tlog 254B
Server.lastbuildstate 46B
CL.read.1.tlog 13KB
Server.exe.intermediate.manifest 381B
mt.read.1.tlog 254B
rc.write.1.tlog 234B
rc.read.1.tlog 226B
mt.command.1.tlog 348B
cl.command.1.tlog 598B
link-cvtres.read.1.tlog 2B
link.3380-cvtres.read.1.tlog 2B
link.3380-cvtres.write.1.tlog 2B
Server.exe.embed.manifest 406B
link.write.1.tlog 570B
Server.obj 29KB
link-cvtres.write.1.tlog 2B
Server.log 3KB
link.command.1.tlog 1KB
link.3380.write.1.tlog 2B
rc.command.1.tlog 458B
link.read.1.tlog 3KB
Server_manifest.rc 202B
link.3380.read.1.tlog 2B
mt.write.1.tlog 254B
Server.exe.embed.manifest.res 472B
vc100.pdb 108KB
gwzyQ1.suo 12KB
gwzyQ1.opensdf 58B
gwzyQ1.sln 1KB
gwzyQ1.sdf 26.58MB
ipch
server-7f734504
server-2e75de63.ipch 31.81MB
client-2fda95d4
client-c767fd4b.ipch 31.81MB
Debug
Client.pdb 499KB
Client.ilk 340KB
Server.pdb 499KB
Server.ilk 342KB
Server.exe 30KB
Client.exe 30KB
共 71 条
- 1
xiaodouyallk
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页