如何使同一台PC上的两个应用程序通过广播通过同一端口上的UDP相互通信

时间:2019-04-24 02:25:24

标签: c# sockets udp udpclient

我正在尝试构建一个在同一台PC上运行并通过UDP广播(或环回)在同一端口上进行通信的聊天客户端和服务器。我能够让聊天客户端向聊天服务器发送消息,但是当我尝试回复时,客户端没有收到回复。

我认为问题的症结在于,我没有解决VisualStudio的方法,从而无法在同一套接字上运行两个侦听器。我尝试着解决这个问题,因为其他人暗示着要上网,一方面听广播消息,另一方面听IPAdress。我尝试混合使用IP地址和环回,但是它总是失败。

聊天服务器:

    int port = 10500;
    UdpClient udpClient = new UdpClient(port);
    IPEndPoint ipep = new IPEndPoint(IPAddress.Any, port);
    IPEndPoint sendipep = new IPEndPoint(IPAddress.Parse("192.168.0.255"), port);

...

//Main
   udpClient.EnableBroadcast = true;

...

//Send
    udpClient.Send(outgoingData, outgoingData.Length, sendipep);

...

//Receive

        while(true) {
            data = udpClient.Receive(ref ipep);

聊天客户端:

    private int port = 10500;
    UdpClient udpClient = new UdpClient("192.168.0.255", port);
    IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.168.0.255"), port);

...

//Main
    udpClient.EnableBroadcast = true;

...

//Send
    udpClient.Send(outgoingData, outgoingData.Length);

...

//Receive
    byte[] incomingData = udpClient.Receive(ref ipep);

我希望客户端收到传入的消息,但似乎从未收到。感谢您的阅读!

0 个答案:

没有答案