Created
April 20, 2019 12:10
-
-
Save b1oki/525611c23791f238db3c4b729b8f9ca6 to your computer and use it in GitHub Desktop.
C# UDP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Net; | |
using System.Net.Sockets; | |
using System.Text; | |
namespace TestClient | |
{ | |
internal static class Program | |
{ | |
private const int PortNo = 5000; | |
private const string ServerIp = "127.0.0.1"; | |
private static void Main() | |
{ | |
Console.WriteLine("Create socket"); | |
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); | |
var localIp = new IPEndPoint(IPAddress.Parse(ServerIp), PortNo); | |
var remotePoint = new IPEndPoint(localIp.Address, localIp.Port); | |
try | |
{ | |
var message = "Client time is " + DateTime.Now; | |
Console.WriteLine("Sending : " + message); | |
socket.SendTo(Encoding.Unicode.GetBytes(message), remotePoint); | |
Console.WriteLine("Wait answer"); | |
var builder = new StringBuilder(); | |
do | |
{ | |
var receivedData = new byte[256]; | |
var bytes = socket.Receive(receivedData); | |
Console.WriteLine("Get answer"); | |
builder.Append(Encoding.Unicode.GetString(receivedData, 0, bytes)); | |
} while (socket.Available > 0); | |
Console.WriteLine("Receive: {0} - {1}", DateTime.Now, builder); | |
} | |
catch (Exception ex) | |
{ | |
Console.WriteLine(ex.Message); | |
} | |
finally | |
{ | |
socket.Close(); | |
} | |
Console.WriteLine("End"); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Net; | |
using System.Net.Sockets; | |
using System.Text; | |
namespace TestServer | |
{ | |
internal static class Program | |
{ | |
private const int PortNo = 5000; | |
private const string ServerIp = "127.0.0.1"; | |
private static void Main() | |
{ | |
Console.WriteLine("Create socket"); | |
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); | |
var localIp = new IPEndPoint(IPAddress.Parse(ServerIp), PortNo); | |
try | |
{ | |
socket.Bind(localIp); | |
while (true) | |
{ | |
Console.WriteLine("Wait connection"); | |
var builder = new StringBuilder(); | |
var remoteIp = new IPEndPoint(IPAddress.Any, 0) as EndPoint; | |
do | |
{ | |
var receivedData = new byte[256]; | |
var bytes = socket.ReceiveFrom(receivedData, ref remoteIp); | |
Console.WriteLine("Connection start"); | |
builder.Append(Encoding.Unicode.GetString(receivedData, 0, bytes)); | |
} while (socket.Available > 0); | |
var remoteFullIp = remoteIp as IPEndPoint; | |
Console.WriteLine("Receive: {0} - {1}:{2} - {3}", | |
DateTime.Now, remoteFullIp.Address, remoteFullIp.Port, builder); | |
var message = "Server time is " + DateTime.Now; | |
Console.WriteLine("Sending : " + message); | |
socket.SendTo(Encoding.Unicode.GetBytes(message), remoteIp); | |
Console.WriteLine("Connection end"); | |
} | |
} | |
catch (Exception ex) | |
{ | |
Console.WriteLine(ex.Message); | |
} | |
finally | |
{ | |
socket.Shutdown(SocketShutdown.Both); | |
socket.Close(); | |
} | |
Console.WriteLine("End"); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment