以下是我的一个button的消息响应函数
请大家看一下: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;
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))
{
AfxMessageBox("listen");//////我一点button2就弹出消息框拉!!!
///////////////////////////////////////////////
////////////////////////////////////////////////为什么???
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;
}
}
}
请大家看一下: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;
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))
{
AfxMessageBox("listen");//////我一点button2就弹出消息框拉!!!
///////////////////////////////////////////////
////////////////////////////////////////////////为什么???
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;
}
}
}
TCP才要
UDP是不需要这样的,直接往指定IP和PORT发数据就可以了
sockfd=socket(AF_INET, SOCK_DGRAM, 0)