Я пытаюсь отправить широковещательное UDP-сообщение в приложение C #.Я попробовал следующий код, чтобы отправить сообщение.Который я нашел на сайте php.net как комментарий к странице руководства socket_sendto .
<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $broadcast_string, strlen($broadcast_string), 0, '255.255.255.255', $port);
?>
Это не работает для меня, может быть, это мойсеть.
Но это сработает, если я заменю широковещательный IP '255.255.255.255'
своим конкретным IP, например '192.168.1.128'
.Я вижу, что это сообщение приходит с Wireshark, хотя я не могу видеть это, используя приведенный выше код.Это наводит меня на мысль, что с PHP-частью кода что-то не так.Я действительно хочу использовать широковещательную рассылку или мультикастинг для своей программы, поэтому сейчас я немного застрял;)
Я использую следующее на стороне приема (C #) (для тестирования):
UdpClient subscriber = new UdpClient(15000);
IPEndPoint ep = new IPEndPoint(IPAddress.Any, 15000); ;
byte[] pdata = subscriber.Receive(ref ep);
string data = Encoding.ASCII.GetString(pdata);
MessageBox.Show(data);
subscriber.Close();
Есть идеи, что может быть причиной этого?