Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.21 KB | None | 0 0
  1.  
  2.             IPEndPoint LocalEndPoint = new IPEndPoint(IPAddress.Any, 60000);
  3.             IPEndPoint MulticastEndPoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900);
  4.  
  5.             Socket UdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
  6.  
  7.             UdpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
  8.             UdpSocket.Bind(LocalEndPoint);
  9.             UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(MulticastEndPoint.Address, IPAddress.Any));
  10.             UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 2);
  11.             UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastLoopback, true);
  12.  
  13.             Console.WriteLine("UDP-Socket setup done...\r\n");
  14.  
  15.             string SearchString = "M-SEARCH * HTTP/1.1\r\nHOST:239.255.255.250:1900\r\nMAN:\"ssdp:discover\"\r\nST:roku:ecp\r\n";
  16.  
  17.             UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint);
  18.  
  19.             Console.WriteLine("M-Search sent...\r\n");
  20.  
  21.             List<string> messages = new List<string>();
  22.  
  23.             byte[] ReceiveBuffer = new byte[64000];
  24.  
  25.             int ReceivedBytes = 0;
  26.  
  27.             Console.WriteLine("Waiting one second to let the UDP port receive data.");
  28.             System.Threading.Thread.Sleep(1000);
  29.  
  30.  
  31.             while (true)
  32.             {
  33.                 if (UdpSocket.Available != 0)
  34.                 {
  35.                     ReceivedBytes = UdpSocket.Receive(ReceiveBuffer, SocketFlags.None);
  36.  
  37.                     if (ReceivedBytes != 0)
  38.                     {
  39.                             //Console.WriteLine(Encoding.UTF8.GetString(ReceiveBuffer, 0, ReceivedBytes));
  40.                         //Console.WriteLine(MulticastEndPoint.Address);
  41.                             messages.Add(Encoding.UTF8.GetString(ReceiveBuffer, 0, ReceivedBytes));
  42.                     }
  43.                     else
  44.                     {
  45.                         break;
  46.                     }
  47.                 }
  48.                 else
  49.                 {
  50.                     break;
  51.                 }
  52.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement