UDP Listener respond to client
22,338
Just do it the other way round. Call StartListener
on the client and it can receive udp data like a server.
On your server just send data with the clients code.
Author by
David W
Updated on June 11, 2020Comments
-
David W almost 4 years
I found this great code on MSDN for a UDP Client/Server connection, however the client can only send to the server, it cant reply back. How can I make this so the server can respond to the client that send the message. The 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; } } }
And the 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); } } }