Csharp/CSharp Tutorial/Network/Broadcast — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 15:20, 26 мая 2010

Broadcast Socket and broadcast IP address

<source lang="csharp">using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; class MainClass {

  public static void Main()
  {
     Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp);
     sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
     IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 9999);
     string hostname = Dns.GetHostName();
     byte[] data = Encoding.ASCII.GetBytes(hostname);
     while (true)
     {
        sock.SendTo(data, iep);
        Thread.Sleep(60000);
     }
  }

}</source>

Udp: Receive Broadcast

<source lang="csharp">using System; using System.Net; using System.Net.Sockets; using System.Text; class MainClass {

  public static void Main()
  {
     Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp);
     IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9050);
     sock.Bind(iep);
     EndPoint ep = (EndPoint)iep;
     Console.WriteLine("Ready to receive...");
     byte[] data = new byte[1024];
     int recv = sock.ReceiveFrom(data, ref ep);
     string stringData = Encoding.ASCII.GetString(data, 0, recv);
     Console.WriteLine("received: {0}  from: {1}",stringData, ep.ToString());
     sock.Close();
  }

}</source>