/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Text; public class BinaryUdpSrvr { public static void Main() { byte[] data = new byte[1024]; IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); UdpClient newsock = new UdpClient(ipep); Console.WriteLine("Waiting for a client..."); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); data = newsock.Receive(ref sender); Console.WriteLine("Message received from {0}:", sender.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, data.Length)); string welcome = "Welcome to my test server"; data = Encoding.ASCII.GetBytes(welcome); newsock.Send(data, data.Length, sender); byte[] data1 = newsock.Receive(ref sender); int test1 = BitConverter.ToInt32(data1, 0); Console.WriteLine("test1 = {0}", test1); byte[] data2 = newsock.Receive(ref sender); double test2 = BitConverter.ToDouble(data2, 0); Console.WriteLine("test2 = {0}", test2); byte[] data3 = newsock.Receive(ref sender); int test3 = BitConverter.ToInt32(data3, 0); Console.WriteLine("test3 = {0}", test3); byte[] data4 = newsock.Receive(ref sender); bool test4 = BitConverter.ToBoolean(data4, 0); Console.WriteLine("test4 = {0}", test4.ToString()); byte[] data5 = newsock.Receive(ref sender); string test5 = Encoding.ASCII.GetString(data5); Console.WriteLine("test5 = {0}", test5); newsock.Close(); } }
Simple Udp Server
/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Text; public class SimpleUdpSrvr { public static void Main() { int recv; byte[] data = new byte[1024]; IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); newsock.Bind(ipep); Console.WriteLine("Waiting for a client..."); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = (EndPoint)(sender); recv = newsock.ReceiveFrom(data, ref Remote); Console.WriteLine("Message received from {0}:", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); string welcome = "Welcome to my test server"; data = Encoding.ASCII.GetBytes(welcome); newsock.SendTo(data, data.Length, SocketFlags.None, Remote); while(true) { data = new byte[1024]; recv = newsock.ReceiveFrom(data, ref Remote); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); newsock.SendTo(data, recv, SocketFlags.None, Remote); } } }
Test Udp Server
/*
C# Network Programming
by Richard Blum
Publisher: Sybex
ISBN: 0782141765
*/
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class TestUdpSrvr
{
public static void Main()
{
int recv;
byte[] data = new byte[1024];
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);
Socket newsock = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
newsock.Bind(ipep);
Console.WriteLine(“Waiting for a client…”);
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
EndPoint tmpRemote = (EndPoint)(sender);
recv = newsock.ReceiveFrom(data, ref tmpRemote);
Console.WriteLine(“Message received from {0}:”, tmpRemote.ToString());
Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));
string welcome = “Welcome to my test server”;
data = Encoding.ASCII.GetBytes(welcome);
newsock.SendTo(data, data.Length, SocketFlags.None, tmpRemote);
for(int i = 0; i < 5; i++) { data = new byte[1024]; recv = newsock.ReceiveFrom(data, ref tmpRemote); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); } newsock.Close(); } } [/csharp]
Udp Client Multi Receive
using System; using System.Net; using System.Net.Sockets; using System.Text; public class UdpClientMultiRecv { public static void Main() { UdpClient sock = new UdpClient(9050); Console.WriteLine("Ready to receive..."); sock.JoinMulticastGroup(IPAddress.Parse("192.100.0.1"), 50); IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0); byte[] data = sock.Receive(ref iep); string stringData = Encoding.ASCII.GetString(data, 0, data.Length); Console.WriteLine("received: {0} from: {1}", stringData, iep.ToString()); sock.Close(); } }
Udp Client Multi Send
using System; using System.Net; using System.Net.Sockets; using System.Text; public class UdpClientMultiSend { public static void Main() { UdpClient sock = new UdpClient(); IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.100.0.1"), 9050); byte[] data = Encoding.ASCII.GetBytes("This is a test message"); sock.Send(data, data.Length, iep); sock.Close(); } }
Udp Client Sample
/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Text; public class UdpClientSample { public static void Main() { byte[] data = new byte[1024]; string input, stringData; UdpClient server = new UdpClient("127.0.0.1", 9050); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); string welcome = "Hello, are you there?"; data = Encoding.ASCII.GetBytes(welcome); server.Send(data, data.Length); data = server.Receive(ref sender); Console.WriteLine("Message received from {0}:", sender.ToString()); stringData = Encoding.ASCII.GetString(data, 0, data.Length); Console.WriteLine(stringData); while(true) { input = Console.ReadLine(); if (input == "exit") break; server.Send(Encoding.ASCII.GetBytes(input), input.Length); data = server.Receive(ref sender); stringData = Encoding.ASCII.GetString(data, 0, data.Length); Console.WriteLine(stringData); } Console.WriteLine("Stopping client"); server.Close(); } }
Binary Udp Client
/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Text; public class BinaryUdpClient { public static void Main() { byte[] data = new byte[1024]; string stringData; UdpClient server = new UdpClient("127.0.0.1", 9050); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); string welcome = "Hello, are you there?"; data = Encoding.ASCII.GetBytes(welcome); server.Send(data, data.Length); data = new byte[1024]; data = server.Receive(ref sender); Console.WriteLine("Message received from {0}:", sender.ToString()); stringData = Encoding.ASCII.GetString(data, 0, data.Length); Console.WriteLine(stringData); int test1 = 45; double test2 = 3.14159; int test3 = -1234567890; bool test4 = false; string test5 = "This is a test."; byte[] data1 = BitConverter.GetBytes(test1); server.Send(data1, data1.Length); byte[] data2 = BitConverter.GetBytes(test2); server.Send(data2, data2.Length); byte[] data3 = BitConverter.GetBytes(test3); server.Send(data3, data3.Length); byte[] data4 = BitConverter.GetBytes(test4); server.Send(data4, data4.Length); byte[] data5 = Encoding.ASCII.GetBytes(test5); server.Send(data5, data5.Length); Console.WriteLine("Stopping client"); server.Close(); } }