如何设置connect()函数的超时时间? 如题。例如把connect()的尝试连接的最大等待时间设为2.5秒。如果超过2.5秒未能连接成功,要能够正常关闭Socket并成功释放内存。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一下:是Windows Sockets系统函数,不是mfc。 同意楼上的,楼主查下MSDN用setsockopt()改变SOCKET的属性 试一下:int i=100;setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO,(char*)&i, sizeof ( int )); int i=100;setsockopt (socket, SOL_SOCKET, SO_SNDTIMEO,(char*)&i, sizeof ( int )); 楼上的代码试过了,不行。SO_RCVTIMEO int 接收超时。SO_SNDTIMEO int 发送超时。把i=100;改为i=2;都不行,和原来一样等了20秒才返回。setsockopt()支持的是发送和接收超时,我要的是连接超时,setsockopt()没有这个选项。 不可能在CONNECT上设置超时。你有两种办法。一用非堵塞。二开一个线程。这里面设计你可以搞个EVENT,线程结束的时候SETEVENT。主线程wait的时候加上一个超时的时间,假如到时间后EVENT未设置,则closesocket,这个会使线程中的connect返回,线程也自动清除。 学习 sevencat(七猫)!thx! 谢谢sevencat(七猫)、谢谢sharkhuang(爱情和程序都读不懂) 、谢谢bluebohe(薄荷) (MVP) 刚刚的测试,用sevencat(七猫)的第二个方法,长时间、同时建立大量线程下,跨线程closesocket()没有出现问题。 【简单问题 把参数都存到cstring中,然后再写入文件】 有谁碰到过Create CWindowImpl窗口crash的问题? 请问 如何灰掉多文档中的view的close按钮,如果让view一开始就最大化? 如何为一个exe文件添加一个输入参数啊? 关于static数组赋值?? 期待回复--怎样将同步通讯变成异步通讯? 怎么样修改系统时间 师父和我说在上面都是高手,,可是只有我什么也不会,有人可以和我说说编程要怎么开始学呢? 求助:不能分配更多内存空间了 我有一帧PCM数据流,应该调用什么函数将其播放出来? CString 与 char[]的互相转化 关于结构体的指针
int i=100;
setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO,(char*)&i, sizeof ( int ));
setsockopt (socket, SOL_SOCKET, SO_SNDTIMEO,(char*)&i, sizeof ( int ));
SO_SNDTIMEO int 发送超时。把i=100;改为i=2;都不行,和原来一样等了20秒才返回。setsockopt()支持的是发送和接收超时,我要的是连接超时,setsockopt()没有这个选项。
你有两种办法。一用非堵塞。
二开一个线程。这里面设计你可以搞个EVENT,线程结束的时候SETEVENT。主线程wait的时候加上一个超时的时间,假如到时间后EVENT未设置,则closesocket,这个会使线程中的connect返回,线程也自动清除。
thx!