我正試圖在局域網上測試UDP通信。我有一小段代碼,我試圖在兩臺電腦上運行它(一個應該等待接收,另一個應該發送)。奇怪的是,計算機A發送和B正確接收,但如果我嘗試A接收和B發送它不起作用。你知道爲什麼會這樣嗎?在.NET中發送和接收UDP數據包
public void SendBroadcast(int port, string message)
{
UdpClient client = new UdpClient();
byte[] packet = Encoding.ASCII.GetBytes(message);
try
{
client.Send(packet, packet.Length, IPAddress.Broadcast.ToString(), port);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void Receive(int port)
{
UdpClient client = null;
try
{
client = new UdpClient(port);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
IPEndPoint server = new IPEndPoint(IPAddress.Any, 0);
while (true)
{
try
{
byte[] packet = client.Receive(ref server);
Console.WriteLine("{0}, {1}", server, Encoding.ASCII.GetString(packet));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
而且電話:
SendBroadcast(444, "hello"); Receive(444);
如果我能夠正常工作而造成每次通話3個封裝在同一臺計算機上運行的程序的兩個實例。
在此先感謝。
是否明確指定IP地址並且不依賴廣播使這項工作在兩個方向上都可行? – Tremmors