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

connect等待时间久,该怎么解决

2013-03-10 
connect等待时间久在程序中对connect的返回值进行判断,但是等待时间要几秒,怎么才能马上得到呢int rescon

connect等待时间久
在程序中对connect的返回值进行判断,但是等待时间要几秒,怎么才能马上得到呢

int res=connect(soc,(struct sockaddr*)&sockaddr,sizeof(sockaddr));
if(res==SOCKET_ERROR)
{
dlg->MessageBox("连接照片服务失败","VSREMOTE");
dlg->SockError();
}

[解决办法]
设置成非阻塞模式,用select去判断.
[解决办法]
windows系统默认21秒,改注册表可以调整但是影响整个系统。单个socket可以依赖select的超时参数,或者异步socket用自己的定时器决定超时
[解决办法]
如果你使用异步IO方式,无论AsyncSelect、EventSelect等都可实现“连接成功后通告”。

如果你非要使用同步方式,建议使用CSocket(基于异步的同步方式)。
connect前加定时器,在OnMessagePending中相应定时器,这是最正确的方法。其他方法都太不常规。
[解决办法]
引用:
引用:
我是这样用的
C/C++ code?12345678910m_sSocket = socket(AF_INET, SOCK_STREAM, 0); //socket()  if(connect(m_sSocket, (LPSOCKADDR)&server, sizeof(SOCKADDR)) == SOCKET_ERROR) //con……

用select模型吧,设置连接超时值
[解决办法]
线程+定时器

热点排行