带有RCVTIMEO的setsockopt()在windows mobile5中不起作用

时间:2011-08-13 13:05:41

标签: sockets tcp windows-mobile

我试图通过使用setsockopt()API和设置时间设置为5秒的so_rcvtimeo选项来对套接字描述符上的recieve()调用进行超时。但是当我没有从服务器收到数据时,我的recieve()调用在5秒后没有超时。

我可能知道是否有任何设置要在Windows Mobile 5中启用以使其正常工作,或者是否有其他方法可以在Windows Mobile 5 / pocket pc中实现此功能

谢谢和问候

1 个答案:

答案 0 :(得分:0)

MSDN documentation for setsocketopt明确指出(在备注部分):

  

以下列表显示了 setsockopt 不支持的BSD选项。

     

SO_ACCEPTCONN
  SO_RCVLOWAT
  SO_RCVTIMEO < ---注意这一个
  SO_SNDLOWAT
  SO_SNDTIMEO
  SO_TYPE

“解决方法”是在单独的线程上执行接收并在调用者中等待该线程,并使用超时中止生成的线程。