Tôi đang phát triển một ứng dụng trò chuyện trong đó khách hàng Android sẽ trao đổi IP của họ bằng cách sử dụng tính năng phát đa hướng (UDP).Thiết bị Android không nhận gói đa phương tiện
Mọi thiết bị sẽ gửi ip của nó cho nhiều khách hàng (tất cả các thiết bị chạy ứng dụng này) trong một Chủ đề riêng biệt. Sẽ có một luồng thu khác sẽ nghe các gói multicast này. Đây là mã của tôi.
// Mã đa phương tiện.
DatagramSocket socket = new DatagramSocket(9898);
byte buff[] = ip.getBytes();
DatagramPacket packet = new DatagramPacket(buff, buff.length, InetAddress.getByName("224.0.0.1"),9999);
socket.send(packet);
socket.close();
// Receiver đang
MulticastSocket socket = new MulticastSocket(9999);
InetAddress group = InetAddress.getByName("224.0.0.1");
socket.joinGroup(group);
DatagramPacket packet;
byte[] buf = new byte[256];
byte b = 'x'; //just a separator for time being
Arrays.fill(buf,b);
packet = new DatagramPacket(buf, buf.length);
String received= "";
while(received!=null)
{
socket.receive(packet);
received = new String(packet.getData());
received = received.substring(0,received.indexOf('x'));
this.setIp(received);
System.out.println("Address: " + received);
}
socket.leaveGroup(group);
socket.close();
Vấn đề là mọi thiết bị in địa chỉ riêng của mình. Có vẻ như nó không bao giờ lắng nghe các gói multicast khác (tôi có nghĩa là nó cũng nên in các ip khác). Tôi cũng nhận được một đăng nhập dưới đây, không chắc chắn nếu đó là liên quan.
11-04 23:56:17.985: I/OSNetworkSystem(603): mcastAddDropMembership interfaceIndex=0
Mọi trợ giúp sẽ được đánh giá cao.
Dường như đây chỉ dành cho các gói phát đa hướng wifi. Tôi đang phát đa hướng qua internet (sử dụng APN bình thường, không có WIFI). Nó vẫn hoạt động? –
Tôi không nghĩ rằng nó có thể trên Android, xem nếu câu trả lời [ở đây] (http://stackoverflow.com/questions/3068497/udp-multicast-over-the-internet) giúp. – yorkw
Cảm ơn tôi sẽ xem xét. –