|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
在.h中定义SOCKET sockSrv;
在.cpp中:
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(2,0);
err=WSAStartup(wVersionRequested,&wsaData);
sockSrv=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(7803);// 端口号
int blindstatus=bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
listen(sockSrv,64);
WSAAsyncSelect(sockSrv,this->m_hWnd,WM_SOCKET,FD_ACCEPT|FD_READ);
异步SOCKET事件WM_SOCKET与OnSocket函数绑定
void CBtConnDlg::OnSocket(WPARAM wParam, LPARAM lParam)
{
switch(lParam)
{
case FD_ACCEPT:
{
int len=sizeof(addrSrv);
int sc=accept(sockSrv,(sockaddr*)&addrSrv,&len);
if(sc==INVALID_SOCKET)
{
//连接出错
return ;
}
break;
}
case FD_READ:
{
//wParam表示网络通信的套接字标示符
char buff[4096];
int recvSize=recv(wParam,buff,4096,0);
//其他一些列的操作
break;
}
}
}
结果我这边接收到的数据接收了2天左右都行的,第三天就一直无法接收到数据了,请问是什么情况,有高人知道吗?? |
|