UDP-Listener reagieren client
Fand ich diesen tollen code auf der MSDN-Website für ein UDP-Client/Server-Verbindung, allerdings kann der client nur an den server senden, kann es nicht wieder Antworten. Wie kann ich diese, so kann der server antwortet dem client, der die Nachricht zu senden.
Der Server
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Security.Cryptography;
namespace UDP_Server
{
class Program
{
private const int listenPort = 11000;
private static void StartListener()
{
bool done = false;
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
try
{
while (!done)
{
Console.WriteLine("Waiting for broadcast");
byte[] bytes = listener.Receive(ref groupEP);
Console.WriteLine("Received broadcast from {0} :\n {1}\n",groupEP.ToString(), Encoding.ASCII.GetString(bytes, 0, bytes.Length));
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
listener.Close();
}
}
public static int Main()
{
StartListener();
return 0;
}
}
}
Und der client
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Security.Cryptography;
namespace UDP_Client
{
class Program
{
static void Main(string[] args)
{
Send("TEST STRING");
Console.Read();
}
static void Send(string Message)
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPAddress broadcast = IPAddress.Parse("10.1.10.117");
byte[] sendbuf = Encoding.ASCII.GetBytes(Message);
IPEndPoint ep = new IPEndPoint(broadcast, 11000);
s.SendTo(sendbuf, ep);
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun Sie es einfach Umgekehrt. Rufen Sie
StartListener
auf die client und empfangen werden können udp-Daten, wie ein server.Auf Ihrem server nur senden von Daten mit dem Kunden code.
Es ist der gleiche code, nur mit umgekehrten Rollen. Der Bedarf des Kunden zu hören, auf irgendeinem port, und der server sendet die Nachricht an den client-Endpunkt statt der broadcast-Adresse.