Android通过局域网从C#桌面应用程序接收UDP广播?

Android通过局域网从C#桌面应用程序接收UDP广播?,c#,android,udp,broadcast,lan,C#,Android,Udp,Broadcast,Lan,我正在尝试在PC上为使用相同wi-fi网络的许多android设备创建一个服务器应用程序。 设备将通过从包含服务器IP数据的服务器接收UDP广播来查找服务器的IP。 我首先用C#创建了一个示例udp广播程序,用java创建了一个udp接收器,但我从未在android端获得数据包。代码如下: C#: Android代码: DatagramSocket socket; try { socket = new DatagramSocket(11000); socket.connect(g

我正在尝试在PC上为使用相同wi-fi网络的许多android设备创建一个服务器应用程序。 设备将通过从包含服务器IP数据的服务器接收UDP广播来查找服务器的IP。 我首先用C#创建了一个示例udp广播程序,用java创建了一个udp接收器,但我从未在android端获得数据包。代码如下:

C#:

Android代码:

DatagramSocket socket;
try {
    socket = new DatagramSocket(11000);
    socket.connect(getBroadcastAddress(), 11000);
    socket.setBroadcast(true);
    byte[] buf = new byte[4];
    DatagramPacket packet = new DatagramPacket(buf, buf.length);
    socket.receive(packet);
在清单中正确设置了Internet权限。仍然无法接收数据包。

建议:

  • 确保没有任何防火墙(软件或硬件)阻止您

  • 考虑使用Wireshark:

  • 看看这个例子:


谢谢,通过使用Wireshark,我发现255.255.255.255不工作,而我使用了本地LAN广播地址192.168.XX.255,数据包现在正在网络中传播。但是我仍然没有通过上面的代码在安卓系统上接收到它。你说两端地址都改变是什么意思?到哪个地址?你能发布你的工作代码吗?嗨@Mr.Me我也在尝试同样的事情,但无法建立连接,你能发布你的工作代码吗?
DatagramSocket socket;
try {
    socket = new DatagramSocket(11000);
    socket.connect(getBroadcastAddress(), 11000);
    socket.setBroadcast(true);
    byte[] buf = new byte[4];
    DatagramPacket packet = new DatagramPacket(buf, buf.length);
    socket.receive(packet);