问题描述
//监听是否有挂起if(tcplistener.Pending()){TcpClienttcp=tcplistener.AcceptTcpClient();stream=tcp.GetStream();try{IFormatterformatter=newBinaryFormatter();car=(CarDataInfo)formatter.Deserialize(stream);this.Invoke((EventHandler)(delegate{stringCnumber=car.CarNumber;//得到车辆的编号;}));}catch(Exceptione){if(e.Message!="在分析完成之前就遇到流结尾。"){MessageBox.Show(e.Message,"错误");}}finally{stream.Flush();stream.Close();tcp.Close();}}//发送消息TcpClientcl=newTcpClient();try{if(carinfo.CarNumber==CarNumberOne){cl.Connect(carinfo.CarIp,carport1);stream=cl.GetStream();IFormatterformatter=newBinaryFormatter();formatter.Serialize(stream,tpi);}elseif(carinfo.CarNumber==CarNumberTwo){cl.Connect(carinfo.CarIp,carport2);stream=cl.GetStream();IFormatterformatter=newBinaryFormatter();formatter.Serialize(stream,tpi);}elseif(carinfo.CarNumber==CarNumberThree){cl.Connect(carinfo.CarIp,carport3);stream=cl.GetStream();IFormatterformatter=newBinaryFormatter();formatter.Serialize(stream,tpi);}elseif(carinfo.CarNumber==CarNumberFour){cl.Connect(carinfo.CarIp,carport4);cl.GetStream();IFormatterformatter=newBinaryFormatter();formatter.Serialize(stream,tpi);}returntrue;}catch(Exceptione){MessageBox.Show("与车车辆信息链接失败正在重新链接!","提示");if(sendMessage(tpi,carinfo)){returntrue;}elsereturnfalse;}finally{if(stream!=null){stream.Flush();stream.Close();}cl.Close();}我这个是开启一个监听,但是我要监听到4个客户端发过来的数据,有时候就监听不到了!
解决方案
解决方案二:
while(tcplistener.Pending())
解决方案三:
有没有大侠们知道的啊!我这是第一写通讯,不知道错误在哪了啊!希望有经验的来看看!
解决方案四:
代码本来已经超长了。这种格式,没法看。
解决方案五:
最好能多線程監聽.