Tcp传输数据出现错误:无法从传输连接中读取数据: 由于连接方在一段时间后没有正确答复或连接的主机没有
服务端:
void IOReceiveCompleted(object sender, ReceiveCompletedEventArgs e) { MessageQueue mq = (MessageQueue)sender; mq.Formatter = new XmlMessageFormatter(new Type[] { typeof(XmlDocument) }); System.Messaging.Message m = mq.EndReceive(e.AsyncResult); XmlDocument xml = (XmlDocument)m.Body; string str = xml.DocumentElement.SelectSingleNode(@"Content").InnerText; byte[] senbyts = System.Text.Encoding.Default.GetBytes(str); NetworkStream stream = null; foreach (TcpClient item in clients) { try { stream = client.GetStream(); stream.Write(senbyts, 0, senbyts.Length); } catch { } } mq.BeginReceive(); }
客户端
Int32 port = 12397; TcpClient client = new TcpClient(server, port); Byte[] data = System.Text.Encoding.ASCII.GetBytes(message); NetworkStream stream = client.GetStream(); data = new Byte[256]; String responseData = String.Empty; client.ReceiveTimeout = 0; while (true) { Int32 bytes = stream.Read(data, 0, data.Length); responseData = System.Text.Encoding.Default.GetString(data, 0, bytes); Console.WriteLine("Received: {0}", responseData); }
异常出现在服务端Try Catch语句中。
我就没明白,你到底在学啥,MVC还是SOCKET编程,
这么难的两门技术你居然并行学习,这个学习能力太强了。
能不能专心先学好一样?
是哦,我也是这样想的一样一样来多好。可是实际上也没办法,人家要这么做我只能这么干。。唉,,找来找去还是没找到是哪里出问题了,难不成TCP连接 会自动断开吗。
@大芝麻: 那买本书行不,我求你了。
要不你把微软关于SOCKET的示例子看看也行啊。
@爱编程的大叔: ....怎么感觉很受打击
@爱编程的大叔: 我看了,就是照抄的MSDN的例子做的。https://msdn.microsoft.com/zh-cn/library/system.net.sockets.tcpclient(v=vs.90).aspx
大侠求指导啊。。。。。。。。。
@爱编程的大叔: 受益匪浅,问题已解决,谢谢!膜拜@!今后多多指教!