高分:同步模式下的网络连接超时设置,需要源码. 同步模式下,使用SOCKET API编程时的网络连接超时设置程序:connect超时send超时recv超时急,急,急.高分. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int iValue, iLen=sizeof(iValue);iValue = ???;//超时值setsockopt(m_sSock, SOL_SOCKET, SO_RCVTIMEO, (char *)(&iValue), iLen); //接收超时setsockopt(m_sSock, SOL_SOCKET, SO_SNDTIMEO, (char *)(&iValue), iLen);//发送超时 sorry!应该这样:setsockopt(m_sSock, IPPROTO_TCP1, SO_RCVTIMEO, (char *)(&iValue), iLen); //接收超时setsockopt(m_sSock, IPPROTO_TCP1, SO_SNDTIMEO, (char *)(&iValue), iLen);//发送超时 connect超时,主要是目的IP地址不存在时的超时太长了,如何设置. 除了通过用setsockopt设置socket选项,也可以用线程的方法,比如:// 负责连接的线程,参数为socketvoid connnectthread(socket s){connect(s);}main(){ //启动连接线程 h_thread = beginthread(connectthread); // 可以根据返回值来判断是连接完成,还是超过指定的timeout waitforsingleobject(h_thread, timeout); } to xuying:这们并不能设置CONNECT超时大小值呀.如何减少timeout值呢? setsockopt(m_sSock, IPPROTO_TCP1, SO_SNDTIMEO, (char *)(&iValue), iLen);//这个函数,我在XP,VS.Net下根本没用啊,阻塞的照样阻塞,我愁了一个多礼拜了:~( to wuxuan(真心英雄) :你在waitforsingleobject()函数中最后一个参数是timeout,如果过了这个指定的时间,该函数返回值为TIME_OUT,此时,你可以中止这个线程,连接过程就结束了。 真的没人能解决吗connect 超时吗? 还是我自己解决了,我找到了一个,如果谁需要,可以看看.http://www.codeguru.com/internet/timeoutsocket.shtml 关于CTreeCtrl::GetNextItem()函数 ATL7.1中SAFEARRAY老是出错:请指教 如何在工程中声明DLL中的类? 在单文档结构程序里,在框架类里用timeSetEvent激活的函数,如果调用视图里的某个成员函数? 在vc中导入ado总是出错,怎么办?(高分) 喜欢VC++,想问除了MFC还能学什么? 如何模拟鼠标在网页上点击单选或多选按钮? CFindReplaceDialog如何与菜单里的查找关联起来 如何获取时间? 在VC中怎么使用Microsoft Media Player2 播放音乐? sdk与文件问题(请高手指点) 谁能告诉我怎样写发送手机短消息的程序?
iValue = ???;//超时值
setsockopt(m_sSock, SOL_SOCKET, SO_RCVTIMEO, (char *)(&iValue), iLen); //接收超时setsockopt(m_sSock, SOL_SOCKET, SO_SNDTIMEO, (char *)(&iValue), iLen);//发送超时
setsockopt(m_sSock, IPPROTO_TCP1, SO_RCVTIMEO, (char *)(&iValue), iLen); //接收超时setsockopt(m_sSock, IPPROTO_TCP1, SO_SNDTIMEO, (char *)(&iValue), iLen);//发送超时
// 负责连接的线程,参数为socket
void connnectthread(socket s)
{
connect(s);
}main()
{
//启动连接线程
h_thread = beginthread(connectthread); // 可以根据返回值来判断是连接完成,还是超过指定的timeout
waitforsingleobject(h_thread, timeout);
}
这们并不能设置CONNECT超时大小值呀.如何减少timeout值呢?
你在waitforsingleobject()函数中最后一个参数是timeout,如果过了这个指定的时间,该函数返回值为TIME_OUT,此时,你可以中止这个线程,连接过程就结束了。
http://www.codeguru.com/internet/timeoutsocket.shtml