社区
C#
帖子详情
怎样判定socket连接已经关闭?
Arsoka
2007-05-11 10:33:40
用socket连接远程服务器时,有时候会发生远程服务器断开连接,改如何判断?
我用C# TcpClient,有时候server已经关闭,但是TcpClient.connected还是true(比如server的80端口),用什么方法判断比较好?
...全文
859
16
打赏
收藏
怎样判定socket连接已经关闭?
用socket连接远程服务器时,有时候会发生远程服务器断开连接,改如何判断? 我用C# TcpClient,有时候server已经关闭,但是TcpClient.connected还是true(比如server的80端口),用什么方法判断比较好?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wzd24
2007-05-21
打赏
举报
回复
我的Blog上有一篇文章就是讲这个的,你可以去看看!
http://blog.csdn.net/wzd24
Arsoka
2007-05-21
打赏
举报
回复
我用C#提供的封装,MSDN上提供的方案没有一种能够成功,用netstat查看连接已经断开的情况下,socket返回的还是true。貌似是无法在这一层上实现了。
mygod_good
2007-05-12
打赏
举报
回复
http://www.cnblogs.com/liuzhiwei/archive/2007/04/24/725348.html
wzd24
2007-05-12
打赏
举报
回复
LS的,你Blog上的写的方法并不能检测基础网络异常。
网_风
2007-05-12
打赏
举报
回复
http://blog.csdn.net/nstorm/archive/2004/12/27/231192.aspx
同步和异步连接拔掉网线可能检测不到。
zhangliu_521
2007-05-12
打赏
举报
回复
昨天刚刚把我所有的家当都散了.
这个:http://community.csdn.net/Expert/topic/5524/5524609.xml?temp=.4617731
wzd24
2007-05-12
打赏
举报
回复
呵呵………………
我才抢了一个月的分!
当然没你多了!!!
升星了记得散点分给我哦!:)
zhangliu_521
2007-05-12
打赏
举报
回复
哈哈
我3700多了哦
wzd24
2007-05-12
打赏
举报
回复
还差2000分!才3100多一些!
zhangliu_521
2007-05-12
打赏
举报
回复
牧兄要升星了吧...
wzd24
2007-05-12
打赏
举报
回复
呵呵………………
LS的兄弟!
zhangliu_521
2007-05-12
打赏
举报
回复
sock.Listen(50);
listenshow.Text="主机"+myIP+"端口:8545开始监听......\r\n";
while(true)
{
temp = sock.Accept();
if(temp.Connected == true)
{
listenshow.Text = "与客户建立连接!";
this.send1.Enabled = true;
while(bb)
{
int byteRecv = 0;
try
{
Byte[] bbb=new Byte[64];
byteRecv = temp.Receive(bbb,bbb.Length,0);
if(byteRecv < 1)
{
temp.Close();
temp = null;
listenshow.Text = "与客户断开连接!从新监听!";
this.send1.Enabled = false;
this.showimage.Text = "";
break;
}
string ccc=System.Text.Encoding.BigEndianUnicode.GetString(bbb);
showimage.AppendText(ccc+"\r\n");
}
catch(SocketException ex)
{
MessageBox.Show(ex.ToString());
temp.Close();
listenshow.Text = "与客户断开连接。";
this.send1.Enabled = false;
this.showimage.Text = "";
break;
}
catch(ObjectDisposedException ex)
{
MessageBox.Show(ex.ToString());
break;
}
}
}
wzd24(牧野)(衣带渐宽终不悔,为伊消得人憔悴) 兄弟帮忙解决的...
那出来让兄弟参考..
frankla
2007-05-12
打赏
举报
回复
只有定时发信息可以
因为如果客户端直接拔网线 服务器端捕捉不到任何错误
wzd24
2007-05-12
打赏
举报
回复
直接用Socket类吧,这个比较好控制!!
Socket对象在对方断开连接的时候Receive方法会返回一个0字节的数据包。这样就可以判断对方是否断开连接了。
likevs
2007-05-11
打赏
举报
回复
写个try catch来捕捉吧
SnApnet
2007-05-11
打赏
举报
回复
服务端断开,你还要连的话会报错的啊
如何判断
SOCKET
通信中,客户端在10s内未发送数据或者未收到服务器发送的数据,自动断开.doc
在本文档中,我们将探讨一种机制,即如何在
SOCKET
长
连接
通信中判断客户端在一定时间内(例如10秒)是否收到来自服务器的数据或向服务器发送数据,并在此基础上实现自动断开
连接
的功能。此外,本文还将根据提供的部分...
基于C_
Socket
的网络通信程序设计
- **断开
连接
**:使用完毕后,可以通过`Shutdown`方法
关闭
Socket
的输入或输出流,最后调用`Close`方法彻底
关闭
Socket
。 #### 四、多线程技术 在基于
Socket
的网络通信程序中,多线程技术是非常重要的。多线程可以使...
TCP链接异常断开检测程序
例如,使用`SO_KEEPALIVE`选项打开探测,`TCP_KEEPIDLE`设置开始发送探测分节前的空闲时间,`TCP_KEEPINTVL`定义两次发送探测分节的时间间隔,以及`TCP_KEEPCNT`设置在
判定
连接
断开前发送探测分节的次数。...
python网络编程调用recv函数完整接收数据的三种方法
因此,可以根据此特点,在程序中加入循环,一直接收数据,直到数据发送端
关闭
socket
连接
。适用场景:客户端和服务器的链接为短链接(即一次
socket
通讯后
连接
就会
关闭
)。代码如下: import
socket
,struct,sys,time ...
win32linux相互移植网络编程需要注意的地方(转)分享.pdf
其中,`sys/
socket
.h`头文件中
已经
包含了`netinet/in.h`的内容,因此可以省略`netinet/in.h`的包含。 3. 初始化和清理: 在win32平台下,需要使用`WSAStartup()`函数来初始化Windows
Socket
s DLL,并使用`#pragma ...
C#
111,119
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章