之前除錯過是能收到的,后來什么也沒改,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);
}
}
uj5u.com熱心網友回復:
ReceiveUdpClient 這是啥把。另外最上面那串回圈ip也不知道是啥
這么說吧,只需要開埠監聽就好。所以請開啟一個固定埠的ip.any 就可以了,至于你的Receive,紅字部分不知道你寫的是上面,所以暫無答案
uj5u.com熱心網友回復:
哦等等,控制臺,執行緒我估計不是沒收到,我估計是沒輸出
uj5u.com熱心網友回復:
好像就是沒收到,把斷點打在 ReceiveUdpClient.Receive那里然后就不往下走了uj5u.com熱心網友回復:
ReceiveUdpClient就是實體化了一個UdpClient全域變數,埠號和ip都沒錯private UdpClient ReceiveUdpClient; //接收用UDP
uj5u.com熱心網友回復:
一條都收不到嗎?寫的while(true) Thread.Sleep就是坑,別人可能一直在發,你延遲了這部分就可能收不到了,建議改成UdpClient.BeginReceiveuj5u.com熱心網友回復:
一條都收不到,把Thread.Sleep刪掉也收不到,斷點進不去uj5u.com熱心網友回復:
問題已解決,是防火墻不小心打開了,真是日了狗了uj5u.com熱心網友回復:
出入站規則修改一下轉載請註明出處,本文鏈接:https://www.uj5u.com/net/28013.html
標籤:C#
