Я могу отправлять UDP-сообщения от одного компьютера к себе через определенный порт, но не могу отправлять эти сообщения с одного компьютера на другой в той же локальной сети. Я довольно новичок в C # и я также новичок в сетевом программировании, поэтому решение, вероятно, легко ...
Я попробовал пример из Microsoft Docs и сделал только небольшие изменения. (имена и т. д.)
Оба кода работают как отдельные программы.
//RECEIVE
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UDPListener
{
private const int listenPort = 11000;
private static void Listen()
{
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
try
{
while (true)
{
Console.WriteLine("Waiting for broadcast");
byte[] receivebytes = listener.Receive(ref groupEP);
Console.WriteLine(Encoding.ASCII.GetString(receivebytes, 0, receivebytes.Length));
}
}
catch (SocketException e)
{
Console.WriteLine(e);
}
finally
{
listener.Close();
}
}
public static void Main()
{
Listen();
}
}
//SEND
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main(string[] args)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//192.168.2.5 is the IP Address of the receiving computer
IPAddress broadcast = IPAddress.Parse("192.168.2.5");
byte[] bytestosend = Encoding.ASCII.GetBytes("Hi");
IPEndPoint ep = new IPEndPoint(broadcast, 11000);
socket.SendTo(bytestosend, ep);
Console.WriteLine("bytestosend were send");
}
}
Отправляющая программа сообщает мне, что сообщение было отправлено, но принимающая программа не выводит.
РЕДАКТИРОВАТЬ 1: Менеджер ресурсов Ressource сказал, что на принимающем компьютере не было сетевой активности, в то время как на отправляющем компьютере фактически что-то отправляет.
РЕДАКТИРОВАТЬ 2: я пытался мои приложения в другой сети, и она работала нормально. Я провел некоторое исследование и обнаружил, что иногда маршрутизаторы не разрешают широковещательные рассылки через подсеть (или что-то подобное ...). Поэтому я предполагаю, что это может быть мой маршрутизатор. (к сожалению, я не могу получить доступ к его настройкам.) Так что я думаю, что проблема решилась сама собой!