私はUDPが初めてです。テスト環境を使用して、単一の UDP メッセージを送受信できます。ただし、複数の UDP メッセージを受信する方法を理解しようとしています。UDP パケットを送信するたびに、MyListener サービスが 1 日中受信できるようにしたいと考えています。助けていただければ幸いです。
PS - 以下の回答で述べたように、DoSomethingWithThisText の周りに while(true) を配置すると、デバッグ中に機能します。ただし、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();
}