如何在没有互联网连接的情况下向/从附近的计算机广播(和接收)消息

时间:2019-07-04 05:15:49

标签: c# networking udp broadcast

我需要在没有互联网连接的情况下向/从附近的计算机 广播和接收消息。我知道这是可能的,因为无需在网络上就可以进行网络发现。

这是我到目前为止尝试过的。这是服务器的代码:

 var Server = new UdpClient(8888);
 var ResponseData = Encoding.ASCII.GetBytes("SomeResponseData");

 while (true) {
     var ClientEp = new IPEndPoint(IPAddress.Any, 0);
     var ClientRequestData = Server.Receive(ref ClientEp);
     var ClientRequest = Encoding.ASCII.GetString(ClientRequestData);

     Console.WriteLine("Recived {0} from {1}, sending response", ClientRequest, ClientEp.Address.ToString());
     Server.Send(ResponseData, ResponseData.Length, ClientEp);
 }

这是客户端的代码:

 var Client = new UdpClient();
 var RequestData = Encoding.ASCII.GetBytes("SomeRequestData");
 var ServerEp = new IPEndPoint(IPAddress.Any, 0);

Client.EnableBroadcast = true;
Client.Send(RequestData, RequestData.Length, new 
IPEndPoint(IPAddress.Broadcast, 8888));

var ServerResponseData = Client.Receive(ref ServerEp);
var ServerResponse = Encoding.ASCII.GetString(ServerResponseData);
Console.WriteLine("Recived {0} from {1}", ServerResponse, ServerEp.Address.ToString());

Client.Close();

当两台计算机都连接到网络时,此代码可以完美工作,但是即使一台计算机断开连接,服务器上也没有收到广播。我该如何解决?

0 个答案:

没有答案