服务端为什么会这样呢 ?
运行以下程序后服务断自动结束了,我想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();
}