connect等待时间久,该怎么解决
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中相应定时器,这是最正确的方法。其他方法都太不常规。
[解决办法]用select模型吧,设置连接超时值
[解决办法]线程+定时器