Csharp/C Sharp/Network/Broadcast

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

Bad Broadcast

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

  public static void Main()
  {
     Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
     IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 9050);
     byte[] data = Encoding.ASCII.GetBytes("This is a test message");
     sock.SendTo(data, iep);
     sock.Close();
  }

}

      </source>


Broadcst Sample

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

  public static void Main()
  {
     Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
     IPEndPoint iep1 = new IPEndPoint(IPAddress.Broadcast, 9050);
     IPEndPoint iep2 = new IPEndPoint(IPAddress.Parse("192.168.1.255"), 9050);
     string hostname = Dns.GetHostName();
     byte[] data = Encoding.ASCII.GetBytes(hostname);
     sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
     sock.SendTo(data, iep1);
     sock.SendTo(data, iep2);
     sock.Close();
  }

}

      </source>


Receive Broadcast

<source lang="csharp"> /* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765

  • /

using System; using System.Net; using System.Net.Sockets; using System.Text; public class RecvBroadcst {

  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());
     data = new byte[1024];
     recv = sock.ReceiveFrom(data, ref ep);
     stringData = Encoding.ASCII.GetString(data, 0, recv);
     Console.WriteLine("received: {0}  from: {1}",
                           stringData, ep.ToString());
     sock.Close();
  }

}

      </source>