鱼C论坛

 找回密码
 立即注册
查看: 2812|回复: 1

MFC中的SOCKET,接收了几天以后突然不接收了

[复制链接]
发表于 2012-10-24 13:02:35 | 显示全部楼层 |阅读模式
10鱼币
代码如下:
在.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天左右都行的,第三天就一直无法接收到数据了,请问是什么情况,有高人知道吗??

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-24 13:15:02 | 显示全部楼层
对了,连接会同时有多个连接过来,接收到以后会进入一个EnterCriticalSection的临界区,不知道是否有影响
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-18 11:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表