[英]Cant identify WiFi Direct peer when device is connected to a WiFi Interface
[英]Multicast to directly connected WIFI device
我有一个正在试验的WIFI设备。 从我的Macbook,我可以通过wifi直接连接到设备。 建立WIFI连接后,我应该能够通过多播与设备进行通信。 但是,一旦我在连接时尝试将数据报包发送到相机,就会得到一些IOException:
java.io.IOException: Can't assign requested address
我查看了一些网络设置,发现笔记本电脑已启用“多播”,并且还将使用的多播地址(239.255.255.250)添加到了路由表中。 (在某处阅读)还是没有运气...
为什么我从应用程序中得到此异常?
这是我用来连接的代码:
DatagramSocket socket = null;
DatagramPacket packet = null;
try {
socket = new DatagramSocket();
InetSocketAddress iAddress = new InetSocketAddress("239.255.255.250", 1900);
packet = new DatagramPacket(sendData, sendData.length,iAddress);
socket.send(packet);
我认为这与我的网络/设置有关。 当我重新连接到无线接入点时,我的应用程序没有给出此异常,并且可以在控制台中看到该软件包:
MacBook-Pro-van-Roy:~ Roy$ sudo tcpdump -ni en1 host 239.255.255.250
Password:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 65535 bytes
19:54:18.688367 IP 192.168.1.34.57428 > 239.255.255.250.1900: UDP, length 129
19:54:18.789447 IP 192.168.1.34.57428 > 239.255.255.250.1900: UDP, length 129
19:54:18.890506 IP 192.168.1.34.57428 > 239.255.255.250.1900: UDP, length 129
InetSocketAddress
不是InetAddress
(它是SocketAddress
)。 您可能想要这样的东西:
InetAddress addr = InetAddress.getByName("239.255.255.250");
packet = new DatagramPacket(sendData, sendData.length, addr, 1900);
socket.send(packet);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.