Как транслировать (и получать) сообщения на / от соседних компьютеров без подключения к интернету - PullRequest
0 голосов
/ 04 июля 2019

Мне нужно транслировать и получать сообщения на / с близлежащих компьютеров без с использованием интернет-соединения. Я знаю, что это возможно, потому что обнаружение сети возможно, даже не будучи в сети.

Это то, что я пробовал до сих пор. Это код для сервера:

 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();

Этот код отлично работает, когда оба компьютера подключены к сети, но даже если один из них отключен, широковещательная рассылка на сервер не принимается. Как я могу это исправить?

...