我有一个正在广播 UDP 数据包的 iPhone 上运行的应用程序。我想编写一个控制台应用程序来读取我的 PC 上的 UDP 数据包。我尝试了这个示例,但无法读取任何数据包:
http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.aspx
我使用了wireshark并验证了UDP数据包正在发送到给定端口上的255.255.255.255。如何在 C# 应用程序中读取数据包?
谢谢!
我有一个正在广播 UDP 数据包的 iPhone 上运行的应用程序。我想编写一个控制台应用程序来读取我的 PC 上的 UDP 数据包。我尝试了这个示例,但无法读取任何数据包:
http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.aspx
我使用了wireshark并验证了UDP数据包正在发送到给定端口上的255.255.255.255。如何在 C# 应用程序中读取数据包?
谢谢!
这是用于简单侦听器的 C# 代码,应该没问题,但我是在 Mac 上写的,所以无法测试。
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UDPListener
{
public static int Main()
{
var done = false;
var listener = new UdpClient(31337);
var ipe = new IPEndPoint("255.255.255.255", 31337);
var data = String.Empty;
byte[] rec_array;
try
{
while (!done)
{
rec_array = listener.Receive(ref ipe);
Console.WriteLine("Received a broadcast from {0}", ipe.ToString() );
data = Encoding.ASCII.GetString(rec_array, 0, rec_array.Length);
Console.WriteLine("Received: {0}\r\rn", data);
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
listener.Close();
return 0;
}
}