Я новичок в UDP. Используя тестовую среду, я могу отправить/получить одно сообщение UDP. Однако я пытаюсь понять, как получать несколько сообщений UDP. Я бы хотел, чтобы служба MyListener получала пакеты UDP в течение всего дня, когда бы я их ни отправлял. Я ценю любую помощь.
PS. Как указано ниже в ответе, если я поставлю while (true) вокруг своего DoSomethingWithThisText, это будет работать во время отладки. Однако это не сработает при попытке запустить MyListener как службу, потому что Start никогда не пройдет цикл while(true).
Мой сервис прослушивания выглядит так...
public class MyListener
{
private udpClient udpListener;
private int udpPort = 51551;
public void Start()
{
udpListener = new UdpClient(udpPort);
IPEndPoint listenerEndPoint = new IPEndPoint(IPAddress.Any, udpPort);
Byte[] message = udpListener.Receive(ref listenerEndPoint);
Console.WriteLine(Encoding.UTF8.GetString(message));
DoSomethingWithThisText(Encoding.UTF8.GetString(message));
}
}
Мой отправитель выглядит так:
static void Main(string[] args)
{
IPAddress ipAddress = new IPAddress(new byte[] { 127, 0, 0, 1 });
int port = 51551;
//define some variables.
Console.Read();
UdpClient client = new UdpClient();
client.Connect(new System.Net.IPEndPoint(ipAddress, port));
Byte[] message = Encoding.UTF8.GetBytes(string.Format("var1={0}&var2={1}&var3={2}", new string[] { v1, v2, v3 }));
client.Send(message, message.Length);
client.Close();
Console.WriteLine(string.Format("Sent message");
Console.Read();
}