18,356
社区成员
发帖
与我相关
我的任务
分享
DWORD WINAPI ListenThread(LPVOID lpParameter)
{
HWND* hWnd=(HWND*)lpParameter;
SOCKET s=socket(AF_INET,SOCK_STREAM,0);
if(INVALID_SOCKET==s)
{
MessageBox(NULL,"创建套接字失败",NULL,MB_OK);
return 0;
}
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(9999);
if(SOCKET_ERROR==bind(s,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)))
{
MessageBox(NULL,"绑定套接字失败",NULL,MB_OK);
return 0;
}
if(SOCKET_ERROR==listen(s,SOMAXCONN))
{
MessageBox(NULL,"设置监听模式失败",NULL,MB_OK);
return 0;
}
SOCKET sClt;
SOCKADDR_IN addrClt;
int siLen=sizeof(siLen);
char chBuf[1024];
while(TRUE)
{
sClt=accept(s,(SOCKADDR*)&addrClt,&siLen);
recv(sClt,chBuf,sizeof(chBuf),NULL);
::PostMessage(*hWnd,UI_CLTOL,0,(LPARAM)&addrClt);
}
return 0;
}
int siLen=sizeof(SOCKADDR);
do
{
sClt=accept(s,(SOCKADDR*)&addrClt,&siLen);
}while(sClt==INVALID_SOCKET);