我正在尝试向 C# 应用程序发送广播 UDP 消息。我已尝试使用以下代码发送消息。我在 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();
知道这可能是什么原因吗?