मैं एक चैट एप्लिकेशन विकसित कर रहा हूं जहां एंड्रॉइड क्लाइंट मल्टीकास्टिंग (यूडीपी) का उपयोग करके अपने आईपी का आदान-प्रदान करेंगे।एंड्रॉइड डिवाइस मल्टीकास्ट पैकेज नहीं प्राप्त कर रहा है
प्रत्येक डिवाइस एक अलग थ्रेड में अपने आईपी को कई क्लाइंट (इस ऐप को चलाने वाले सभी डिवाइस) भेज देगा। एक और रिसीवर धागा होगा जो इन मल्टीकास्ट पैकेट को सुनेंगे। मेरा कोड यहाँ है।
// मल्टीकास्टिंग कोड।
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();
// रिसीवर कोड
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();
समस्या हर डिवाइस अपने आप पता प्रिंट है। ऐसा लगता है कि यह कभी भी अन्य मल्टीकास्ट पैकेजों को नहीं सुनता है (मेरा मतलब है कि इसे अन्य आईपी भी प्रिंट करना चाहिए)। मुझे नीचे लॉग भी मिलता है, यह सुनिश्चित नहीं है कि यह संबंधित है या नहीं।
11-04 23:56:17.985: I/OSNetworkSystem(603): mcastAddDropMembership interfaceIndex=0
किसी भी मदद की सराहना की जाएगी।
यह इस तरह दिखता है केवल वाईफाई बहुस्त्र्पीय पैकेट के लिए है। मैं इंटरनेट पर मल्टीकास्टिंग कर रहा हूं (सामान्य एपीएन का उपयोग करके, कोई वाईफ़ाई नहीं)। क्या यह अभी भी काम करेगा? –
मुझे नहीं लगता कि यह एंड्रॉइड पर संभव है, देखें कि क्या जवाब [यहां] (http://stackoverflow.com/questions/3068497/udp-multicast-over-the-internet) मदद करता है। – yorkw
धन्यवाद मैं एक नज़र डालेगा। –