首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CASyncSocket 多线程接收 出现异常10035

2013-01-23 
CASyncSocket 多线程接收 出现错误10035DWORD WINAPI CAirplaneDlg::RecvProc(){INTE_TXDATA *RecvBuf n

CASyncSocket 多线程接收 出现错误10035
DWORD WINAPI CAirplaneDlg::RecvProc()
{
INTE_TXDATA *RecvBuf = new INTE_TXDATA;//创建一个新的结构体
int len=sizeof(INTE_TXDATA);
SOCKADDR_IN addrFrom; // IP地址的结构体
int len1=sizeof(SOCKADDR_IN); 

while(TRUE)
{
         // 接收数据,数据在recvBuf里
((RECVPARAM*)lpParameter)->sock.ReceiveFrom(RecvBuf, len, (SOCKADDR*)&addrFrom, &len1, 0); 

}
return 0;
}

创建线程函数
HANDLE hThread = CreateThread(NULL, 0, RecvProc, NULL, 0, NULL); // 创建以太网接收线程
CloseHandle(hThread); // 关闭线程,释放其引用计数

sock为CASyncSocket类型 是全局变量
执行到sock.ReceiveFrom时就会出现错误代码10035 这要怎么解决呢
[解决办法]
CASyncSocket内部创建了一个CSocketWnd类来处理网络事件,相当于有一个UI线程在单独处理了,在创建线程是多此一举
别把CASyncSocket类当成socket API用了
MFC就是这么神奇的一个类库,如果使用者不去看类库的实现代码,有些类很容易用错...

热点排行