问题描述
- c#tcp协议通信问题,消息第一次发送无反应
-
先上代码
try
{
FileStream file = new FileStream(str0 + "init1.txt", FileMode.Open);
for (int i = 0; (i * 18) < file.Length; i++)
{
file.Seek(i * 18, SeekOrigin.Begin);
file.Read(byData, 0, 18);
Decoder d = Encoding.Default.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
//SendMsgStart("shut", new string(charData).Substring(4, 12), "43680"); //udp消息发送
TcpClient tcpClient = new TcpClient();
tcpClient.Connect(IPAddress.Parse(new string(charData).Substring(4, 12)), Int32.Parse("43680"));
NetworkStream ns = tcpClient.GetStream();
ns.Write(bstart, 0, 6);
ns.Close();
tcpClient.Close();
}
file.Close();
其他的不管了,代码其实也可以不看。就是我第一次运行这个代码,对方机器没反应。对方机器无法测试是否获取信息。然后再次运行一下机器就做出正常反映了。对方机器udp协议通信正常,发送消息一次就能做出正常反映。
解决方案
调试下,看看对方有没有开始监听端口
解决方案二:
这个最好能在对方机器上抓包分析一下,不然不知道网络中发生了什么
解决方案三:
我改了程序,改成循环发送两次消息,暂时解决问题,可能是对方机器的问题。
时间: 2024-10-15 03:26:12