UDP通信的小程序的一个问题
我做了一个UDP通信的小程序,因为刚接触,所以就照抄了网上的源代码:
UDP服务器端源程序
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "WS2_32.lib")
#define BUF_SIZE 1024
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 5678
*****************************************************
int main(int argc, char** argv)
{
*******************************************
我是在vc里建了一个工程的,所以上面的就没写,用一个“开始”按钮控件运行下面的代码
WSADATA wsaData;
SOCKET socketC;
SOCKADDR_IN serverAddr;
char recvbuf[BUF_SIZE];
WSAStartup(MAKEWORD(1,1), &wsaData);
socketC = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(SERVER_PORT);
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(socketC, (SOCKADDR*)&serverAddr, sizeof(serverAddr));
int nRet = recvfrom(socketC, recvbuf, sizeof(recvbuf), 0, 0, 0);
while (1)
{
nRet = recvfrom(socketC,recvbuff,sizeof(recvbuff),0,0,0);
if (nRet != 0)
MessageBox(recvbuff);
closesocket(socketC);
WSACleanup();
return 0:
}
我弄好服务端和客户端后,点服务端上的“开始”按钮后,能接受到客户端发来的消息,消息是一条条发的,但2秒过后程序就没有响应了,只能强制关闭,这是为什么??