Csharp/CSharp Tutorial/Network/Socket Udp Client — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:31, 26 мая 2010
Simple Udp Client: send and receive
<source lang="csharp">using System; using System.Net; using System.Net.Sockets; using System.Text; class MainClass {
public static void Main() { byte[] data = new byte[1024]; string input, stringData; IPEndPoint ip = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999); Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp); string welcome = "Hello"; data = Encoding.ASCII.GetBytes(welcome); server.SendTo(data, data.Length, SocketFlags.None, ip); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = (EndPoint)sender; data = new byte[1024]; int receivedDataLength = server.ReceiveFrom(data, ref Remote); Console.WriteLine("Message received from {0}:", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, receivedDataLength)); server.Close(); }
}</source>
Udp client setup
<source lang="csharp">using System; using System.Net; using System.Net.Sockets; using System.Text; class MainClass {
public static void Main() { byte[] data = new byte[1024]; IPEndPoint ip = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999); Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp); string welcome = "Hello"; data = Encoding.ASCII.GetBytes(welcome); server.SendTo(data, data.Length, SocketFlags.None, ip); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint tmpRemote = (EndPoint)sender; data = new byte[1024]; int receivedDataLength = server.ReceiveFrom(data, ref tmpRemote); Console.WriteLine("Message received from {0}:", tmpRemote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, receivedDataLength));
server.SendTo(Encoding.ASCII.GetBytes("message 1"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 2"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 3"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 4"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 5"), tmpRemote); server.Close(); }
}</source>
Udp Multi-send
<source lang="csharp">using System; using System.Net; using System.Net.Sockets; using System.Text; class MainClass {
public static void Main() { Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9888); IPEndPoint iep2 = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999); server.Bind(iep); byte[] data = Encoding.ASCII.GetBytes("This is a test message"); server.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("127.0.0.1"))); server.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 50); server.SendTo(data, iep2); server.Close(); }
}</source>