我有2个程序,1个用于发送UDP广播消息,1个正在监听此广播。我的问题是,有时当我发送广播时,接收器会收到2条消息。为什么?发送UDP广播,接收多条消息
接收器代码:
public class Receiver {
private readonly UdpClient udp = new UdpClient(15000);
private void StartListening()
{
this.udp.BeginReceive(Receive, new object());
}
private void Receive(IAsyncResult ar)
{
IPEndPoint ip = new IPEndPoint(IPAddress.Any, 15000);
byte[] bytes = udp.EndReceive(ar, ref ip);
string message = Encoding.ASCII.GetString(bytes);
StartListening();
}
}
发件人代码:
public class Sender {
public void Send() {
UdpClient client = new UdpClient();
IPEndPoint ip = new IPEndPoint(IPAddress.Broadcast, 15000);
byte[] bytes = Encoding.ASCII.GetBytes("Foo");
client.Send(bytes, bytes.Length, ip);
client.Close();
}
}
嗨。我想用你的代码来传输UDP文件。但我不知道如何处理接收部分!应该如何实施?它将如何开始从网络中获取内容? – Shamim
@Shamim,网上有很多资源,有点Google搜索应该有所帮助。查找服务器/客户端示例。 –
'IPEndPoint ip = new IPEndPoint(IPAddress.Any,15000);'只能是'IPEndPoint ip = null;' - 它不是结构体。它在'EndReceive()'方法中的用途是定义发送者。用任何东西填充它都有点误导。 – maxp