C# 一个简单的服务端与客户端之间的通信,为什么客户端关闭后,服务端会出错? C# 一个简单的服务端与客户端之间的通信,为什么客户端关闭后,服务端会出错? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这两天我刚好在看这个,呵呵例如socket1 客户端异常断开后服务端是没有响应的,此时继续对socket进行访问就会发生意外2 客户端强制关闭后服务端会报远端socket被强制关闭错误3 客户端断开后,如果服务端是异步发送和接收,在发送代码和接受代码处可能会爆意外 通讯方式太多了,这得看具体代码。如果是socket, 客户端断开以后,服务器端会收到一个\0,用来判断客户端是否已经断开。但是在一些特谁情况下,也会报出异常,服务器端同样需要用try catch 来处理客户端断开的情况 你应该是b/s就会出现这情况如果你是多路复用的方式来使用tcp/ip,可以这样来处理关闭问题:..... if( 是tcp数据可用 ) { iRet=read(iSock,szBuffer,2); if( iRet == 0 ) { Debug(2,"连接被关闭\n"); exit(0); } else if( iRet == -1 ) { Debug(2,"连接错误\n"); exit(0); } //正常处理读出的数据 } +11 客户端异常断开后服务端是没有响应的,此时继续对socket进行访问就会发生意外2 客户端强制关闭后服务端会报远端socket被强制关闭错误3 客户端断开后,如果服务端是异步发送和接收,在发送代码和接受代码处可能会爆意外 服务端socket,tcp传输,当socket的receive函数返回0就代表客户端断开。 你用的是TCP连接。基于TCP通信的双方是处在长连接状态下的,因为通信双方都在不停地侦听来自对方的消息,所以,如果通信一方意外关闭,都会造成另一方的通信异常。解决方法:1.退出前,给对方发送“退出”消息2.在循环侦听或异步回调中,加入try{}catch{} 一个C#面向对象编程的练习,求指点 高分求一种比较好的数据设计方式(2张表) C#中对于C/S模式传输数据量大时网线不支持该怎么解决? socket 通信问题!!!!!!!!! winForm CheckedChanged 事件 失效 高人们:把一个文件夹转化为它的压缩文件.RAR怎么做?!谢谢 新手求助,10进制money值怎么修改? OPC通讯问题:在用OPC做Siemens PLC监控程序时,当连续4.5小时读取后就会出错 一个简单问题!马上结帖! 用c#编写dll时,如何调试? C#正则表达式/b([a-z]+)/1/b 这个实现不了文章说的那个功能!请为我解析以下 C#桌面程序挑战
例如socket
1 客户端异常断开后服务端是没有响应的,此时继续对socket进行访问就会发生意外
2 客户端强制关闭后服务端会报远端socket被强制关闭错误
3 客户端断开后,如果服务端是异步发送和接收,在发送代码和接受代码处可能会爆意外
如果你是多路复用的方式来使用tcp/ip,可以这样来处理关闭问题:
.....
if( 是tcp数据可用 )
{
iRet=read(iSock,szBuffer,2);
if( iRet == 0 )
{
Debug(2,"连接被关闭\n");
exit(0);
}
else if( iRet == -1 )
{
Debug(2,"连接错误\n");
exit(0);
}
//正常处理读出的数据
} +1
1 客户端异常断开后服务端是没有响应的,此时继续对socket进行访问就会发生意外
2 客户端强制关闭后服务端会报远端socket被强制关闭错误
3 客户端断开后,如果服务端是异步发送和接收,在发送代码和接受代码处可能会爆意外
基于TCP通信的双方是处在长连接状态下的,因为通信双方都在不停地侦听来自对方的消息,所以,如果通信一方意外关闭,都会造成另一方的通信异常。
解决方法:
1.退出前,给对方发送“退出”消息
2.在循环侦听或异步回调中,加入try{}catch{}