本人是写cocos2dx的,这是个跨平台的引擎,需要满足win32,ios和android平台,这里我有几个疑问
关于阻塞,在win32平台下,socket默认是阻塞,connect也是阻塞,但是它是不是有个
默认的超时时间啊,我再win32平台上连接一台关闭的服务器,它会假卡死一会,然后就正常了,
但是在android平台上却一直都是卡死,我想这是不是和linux上的socket有关系呢
可参考:http://blog.csdn.net/WINCOL/article/details/6158774
设置成非阻塞模式就行了, 响应快很多
可以参考代码:
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轮询达到超时设置,在下大致明白了,感谢!