c# udp通讯收不到别人发来的数据了
之前调试过是能收到的,后来什么也没改,IP地址和端口号也对,就是收不到了。
现在测试情况如下:
1,别人发的数据在自己电脑上用udp调试助手能收到,但是自己写的udp收不到
2,自己udp发的数据别人能收到
3,在自己电脑上用udp调试助手给自己发数据,自己写的udp能收到
4,自己写的udp放在别的解决方案能收到,但是放到目前的解决方案就收不到
请大神帮忙看看什么原因,在receive那里直接就收不到数据,同样的ip和端口号用网上下载的调试助手就能收到,代码如下:
string localIP = "";//本机IP
IPAddress[] IP = Dns.GetHostAddresses(Dns.GetHostName());//获取本地IP地址列表
for (int i = 0; i < IP.Length; i++)
{
localIP = IP[i].ToString();
}
#region UDP接收线程开启
LocalRevEndPoint = new IPEndPoint(IPAddress.Parse(localIP), Myapp_Config.PortRev_l);//本地接收终结点
ReceiveThread = new Thread(new ThreadStart(UDPReceive));//UDP接收线程
ReceiveThread.IsBackground = true;
ReceiveThread.Name = "UDP接收线程";
ReceiveThread.Start();
#endregion
/// <summary>
/// 接收数据
/// </summary>
private void UDPReceive()
{
IPEndPoint remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);//任意ip的远程终结点
ReceiveUdpClient = new UdpClient(LocalRevEndPoint);
while (true)
{
try
{
byte[] receiveBytes = ReceiveUdpClient.Receive(ref remoteIpEndPoint);//接收数据
Console.WriteLine("收到数据");
if (receiveBytes[0] == 0xFF && receiveBytes[1] == 0xEE)
{
RevDateTime = DateTime.Now;//获取接收数据的时间
string RemoteIP = remoteIpEndPoint.Address.ToString();
if (receiveBytes.Length > 0 && RemoteIP != "")
{
MenuForm.MyTransSystemState.SystemState(receiveBytes, RemoteIP);//处理系统状态数据
}
}
}
catch (Exception ex)
{
//m_SysException.SystemException(ex, "", "UdpServer.Listen");
Console.WriteLine("----------------------------------------------------------------");
Console.WriteLine(ex.ToString());
}
Thread.Sleep(500);
}
}