void CMyIMServerDlg::OnOK() //启动服务器
{
// TODO: Add extra validation here
  if (InitWinsock())
{
MessageBox("成功初始化winsock");
}
else
{
MessageBox("初始化winsock失败");
CDialog::OnOK();//退出
} //创建用于监听的socket
    SOCKET ListenSocket=MakeSocket(SOCK_DGRAM);
SOCKADDR_IN addSrv;
addSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addSrv.sin_family=AF_INET;
addSrv.sin_port=htons(SERVER_PORT); int result=bind(ListenSocket,(const sockaddr *)&addSrv,sizeof(SOCKADDR));
if (result==0)
{
MessageBox("服务器套接字绑定成功");
}
else
{
MessageBox("服务器套接字绑定失败");
        CDialog::OnOK();//退出
} SOCKADDR_IN  addClient;
int length=0;
char temp[50];
while (1)
{
//SOCKET newConnect=accept(ListenSocket,(SOCKADDR *)&addClient,&length);
// if (newConnect!=INVALID_SOCKET )
// {
// MessageBox("受到客户端请求");
       //  sendto(newConnect,"欢迎注册",strlen("欢迎注册")+1,0,(SOCKADDR *)&addClient,length);
// }
   int a= recvfrom(ListenSocket, (char *)&temp, sizeof(temp), MSG_PEEK, (sockaddr *)&addClient, &length);
if(a <= 0)
{
MessageBox("接受数据出错");
continue;
}
else
{
MessageBox(temp);
}
Sleep(10000); }

// CDialog::OnOK();
}
我没有启动客户端,只启动服务器端,但是recvfrom函数不阻塞,而是循环弹出提示框:“接受数据出错”,最后导致程序卡死,这是什么原因啊,我客户端都没有启动,更别提给服务器发送数据了
MSDN上面的说明是当没有数据来的时候,这个函数会自动阻塞
请教各位前辈!!!