C\S 程序中,出现socket 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接 问题
现为一个小公司做了一个C\S管理程序, 通过Socket 通信,在开发机器上测试时,一切正常(服务器和客户端都在同一台开发主机上)。但是当将服务器端移植到专门的主机上后, 服务器端经常出现该异常。
我已经将客户端发送消息的时候,将发消息所在的线程睡了30秒。 但还是出现这样的问题。
请问这是不是 那个服务器所在的主机系统主动将我的服务器端与客户端通信的连接关闭?
请问这需要怎么结局?
System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 System.IO.BinaryReader.ReadBytes(Int32 count)
在 System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(__BinaryParser input)
在 System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadSerializationHeaderRecord()
在 System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
在 System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
在 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage)
Console.WriteLine("网络中断");
else
Console.WriteLine(ex.Message);
}
[解决办法]
服务器遇到异常已经关闭了。
[解决办法]
是不是重复使用端口了?
[解决办法]