在一个线程中套接字接收时,另一个线程中的套接字不能发送(这两个线程用同一套接字),怎样解决?

时间:2022-08-30 19:29:10
当在一个线程中进行接收时,代码如下:
CSocket SockCon;
while(1)
{   
  err=SockCon.Receive(CmppRec,nSizeDeliv);
  if(err==nSizeDeliv)
  {
    进行相关的操作;
   }
}
在另一个线程中
while(1)
{
 err=((CShortMsgDlg*) pParam)->SockCon.Send(CmppMsg,nSizeAct);//需要定时发送
}
但是由于第一个线程中一直处于接受状态,第二个线程中的发送函数发送不成功,用GetLastError()得到的值是10036 (sckInProgress 制造块的 Winsock 操作在进行之中)。
那位高手能解决此问题,请赐教!不胜感激!

2 个解决方案

#1


建议用api

#2


我也建议使用API,并且用WSAGetLastError代替GetLastError函数。

#1


建议用api

#2


我也建议使用API,并且用WSAGetLastError代替GetLastError函数。