请教:c#(socket)server 如何判断clientsocket 已经断开 好像以前有这样的贴子。你搜索一下吧!GOOD LUCK! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也问过这个问题.就是在Server上listen客户端的连接然后clientSocket = listener.AcceptSocket()...结果,客户端的soket关闭之后.服务器端的clientSocket.Connected仍然是true.有网友赐教就是半连接的状态.我用netstat -a看了一下,那个端口连接的状态是TIMEWAIT,从tcp/ip三卷本中说TIMEWAIT,会等待2倍与最长报文时间,然后自己close.不过,我当时好像没等到它close.不知道这个时间到底是多长.另外一种方法就是关闭客户连接之前,发一个特定的包标志客户打算关闭,然后再处理吧. 设置超时,当SOCKET在一定时间内没收到任何信息时。它就会发出异常。 while ( true ){Byte[] recmsg=new Byte [1024];string strmsg;int bytes ; bytes=Mysocket.Receive (recmsg,recmsg.Length ,0);strmsg=Encoding.Default .GetString (recmsg,0,bytes); if (strmsg=="###"){Mysocket.Shutdown (SocketShutdown.Both);Mysocket.Close ();listBox1.Items.Add( "已断开同客户端的连接");break;} listBox1.Items.Add( "收到客户端信息:" + strmsg ); }可我发现客户端断开后,再也连不上了,为什么,可不可以采用这样的方式 使用轮询,看这:http://www.csdn.net/develop/Read_Article.asp?Id=15117 看看《TCP/IP详解》这叫半连接,你可以设定服务器在一段时间内没收到响应就自己关闭。或者,在客户端关闭之前发送一个自己关闭的标志,告诉服务器,服务器收到后自己关闭。good luck 有过开发基础架构或想开发基础架构的朋友看过来 WPF: WindowsFormsHost通过Child内容刷新,闪屏的问题!!!!!!! 按时间决定数据保留问题 在练习中使用DataRow的属性 看到了DataRelation 这个类 感觉很有用 不知道我想的可以实现不 问个sql语句 如何取得视频文件的时间 csdn的blog源代码开放吗? c#的宏替换问题 我用C#和ASP+来实现向WEB服务器指定的目录下上传文件,怎么不成功啊? 关于Cookie的使用问题 木马程序是如何在系统中启动的?》》》请教高手~ 如何给一个WINDOWS程序加配置文件?
...结果,客户端的soket关闭之后.服务器端的clientSocket.Connected仍然是true.有网友赐教就是半连接的状态.我用netstat -a看了一下,那个端口连接的状态是TIMEWAIT,从tcp/ip三卷本中说TIMEWAIT,会等待2倍与最长报文时间,然后自己close.不过,我当时好像没等到它close.不知道这个时间到底是多长.
另外一种方法就是关闭客户连接之前,发一个特定的包标志客户打算关闭,然后再处理吧.
它就会发出异常。
{
Byte[] recmsg=new Byte [1024];
string strmsg;
int bytes ;
bytes=Mysocket.Receive (recmsg,recmsg.Length ,0);
strmsg=Encoding.Default .GetString (recmsg,0,bytes);
if (strmsg=="###")
{
Mysocket.Shutdown (SocketShutdown.Both);
Mysocket.Close ();
listBox1.Items.Add( "已断开同客户端的连接");
break;
}
listBox1.Items.Add( "收到客户端信息:" + strmsg );
}可我发现客户端断开后,再也连不上了,为什么,可不可以采用这样的方式
或者,在客户端关闭之前发送一个自己关闭的标志,告诉服务器,服务器收到后自己关闭。good luck