listen出错是怎么回市?
ytfr 2002-10-17 03:52:21 以下是我程序中一个button的消息处理函数
在listen()处弹出消息矿为什么???
void CServerDlg::OnButton2()
{
WSADATA wsadata;
int err=WSAStartup((WORD)((1<<8)|1),&wsadata);
if ( err != 0 ) {
return;
}
/////////////////////////////////////////////////
if ((sockfd=socket(AF_INET, SOCK_DGRAM, 0)) ==INVALID_SOCKET)
{
AfxMessageBox("socket");
exit(1);
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MYPORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
// memset(&(my_addr.sin_zero), 8);
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))==SOCKET_ERROR)
{
AfxMessageBox("bind");
exit(1);
}
setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,(char*)optval,sizeof(optval));
if(listen(sockfd, BACKLOG))////////////////////////
//////////////////////////////////////////////
这有错误吗??我点button
执行到次弹出消息框!!!
{
AfxMessageBox("listen");
exit(1);
}
while(1)
{
sin_size = sizeof(struct sockaddr_in);
if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)
{
AfxMessageBox("accept");
continue;
}
}
}