服务端为什么会这样呢 ?

daohua daohua 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
运行以下程序后服务断自动结束了,我想recvfrom()应该是等待客户锻发来消息再进行响应了,而我的客户端程序没运行,也就是没收到消息服务端就自动结束了,
代码如下:(基于UDP的通信)

#include <stdio.h>
#include <winsock2.h>
void main()
{
WORD ver;
WSADATA wsadata;
int flag;
ver = MAKEWORD(1,1);

flag=WSAStartup(ver,&wsadata);

if(flag !=0)
return ;

if(LOBYTE(wsadata.wVersion) != 1 || HIBYTE(wsadata.wVersion) !=1)
{
WSACleanup();
return ;
}

SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addr;
addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addr.sin_family=AF_INET;
addr.sin_port=htons(6000);

bind(sockSrv,(SOCKADDR *)&addr,sizeof(SOCKADDR));

char srvBuf[100]={0};
SOCKADDR_IN addr2;
int len=sizeof(SOCKADDR);
recvfrom(sockSrv,srvBuf,100,0,(SOCKADDR *)&addr2,&len);//程序运行到这里应该会类似监听啊
printf("收到的是 :%s",srvBuf);

closesocket(sockSrv);
WSACleanup();
}
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
daohua
网络编程 18,356 成员 64,161 内容