社区
C#
帖子详情
如何设置socket的连接超时??注意是连接超时,不是发送和接收数据超时.
luguanxiang
2005-06-03 09:33:07
我建立一个客户端socket连接服务端,如果主机不存在的话,超时时间为:20秒左右,我想把它改小一点,但不知道怎么改?这方面高手请指教!
...全文
395
7
打赏
收藏
如何设置socket的连接超时??注意是连接超时,不是发送和接收数据超时.
我建立一个客户端socket连接服务端,如果主机不存在的话,超时时间为:20秒左右,我想把它改小一点,但不知道怎么改?这方面高手请指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luguanxiang
2005-06-13
打赏
举报
回复
再顶,这个问题真是要命哦
luguanxiang
2005-06-06
打赏
举报
回复
顶上去
luguanxiang
2005-06-05
打赏
举报
回复
高手都来看看啊,现在我必须用阻塞方式连接,但接收数据我用的异步的方式,如何设置连接超时呢?二楼兄弟的方法,我用了好像不行.望指教
dragonimp
2005-06-05
打赏
举报
回复
我也想知道同步怎么设置连接超时呀....
mba9001
2005-06-04
打赏
举报
回复
up
luguanxiang
2005-06-04
打赏
举报
回复
好像还是不行啊.我没有使用异步连接,是用的阻塞方式,socketEvent.WaitOne可以用吗?
wangsaokui
2005-06-03
打赏
举报
回复
ManualResetEvent socketEvent = new ManualResetEvent(false);
Socket sClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
public void Receive()
{
try
{
while(true)
{
try
{
if (!sClient.Connected)
{
sClient.BeginConnect(new IPEndPoint(IPAddress.Parse("192.168.0.1"), 10001),
new AsyncCallback(ConnectCallback),sClient);
socketEvent.WaitOne(10000,false);
}
socketEvent.Reset();
sClient.BeginReceive(buffer,0,buffer.Length,0,new AsyncCallback(ReceiveCallback),sClient);
socketEvent.WaitOne(10000,false);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
socketEvent.WaitOne(10000,false);
这句的意思是如果超过10秒,就退出,如果需要重新连接,可以把false改为true,具体你可以参考MSDN中的WaitOne()
Java实现
Socket
长
连接
和短
连接
Java实现
Socket
长
连接
和短
连接
,实现原理可参见个人博客
Socket
编程例子
Socket
编程例子
【c#】
设置
Socket
连接
、接收
超时
用到
Socket
,发现如果
连接
错误,比如Connect的端口不对,会造成很长时间的延时,程序就僵在那里,效果很不好; 在网上找到很方便的
设置
办法,分享如下:
Socket
.Set
Socket
Option(
Socket
OptionLevel.
Socket
,
Socket
OptionName.ReceiveTimeout,1000);
设置
Socket
接收
超时
,时长为1000...
Socket
关于
设置
Socket
连接
超时
时间
参考链接: https://www.iteye.com/blog/cuisuqiang-1725348
socket
的读写是阻塞的,soTimeout是
socket
读写
超时
,而不是链接
超时
。 setSoTimeout public void setSoTimeout(int timeout) throws
Socket
Exception启用/禁用带有指定
超时
值的 SO_TIMEOU...
python
socket
connect
超时
_python
socket
.connect – >为什么会
超时
?
您无需更改所有新套接字的默认
超时
,而只需
设置
该特定
连接
的
超时
即可.虽然值有点低,但是将其增加到10-15秒有望成功.首先,这样做:s =
socket
.
socket
()然后:s.settimeout(10)你应该在
连接
上使用“try:”,并添加:except
socket
.error as
socket
error:print("Error: ",
socket
error)这将在输出中显示系统错误消...
C#
111,119
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章