c++关于socket的问题,阻塞,超时

本人是写cocos2dx的,这是个跨平台的引擎,需要满足win32,ios和android平台,这里我有几个疑问
关于阻塞,在win32平台下,socket默认是阻塞,connect也是阻塞,但是它是不是有个
默认的超时时间啊,我再win32平台上连接一台关闭的服务器,它会假卡死一会,然后就正常了,
但是在android平台上却一直都是卡死,我想这是不是和linux上的socket有关系呢

5个回答

连接超时时间设置。

设置成非阻塞模式就行了, 响应快很多

可以参考代码:

 unsigned long ul=1;

  SOCKET s=socket(AF_INET,SOCK_STREAM,0);

  int ret=ioctlsocket(s, FIONBIO, (unsigned long *)&ul);//设置成非阻塞模式。

  if(ret==SOCKET_ERROR)//设置失败。

  {

  }

感谢楼上几位的朋友,总的来说活就是设置为非阻塞,用select轮询达到超时设置,在下大致明白了,感谢!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐