पर सर्वरस्केट का उपयोग नहीं कर सकता है मैं एंड्रॉइड डिवाइस पर ServerSocket
का उपयोग कर पोर्ट पर सुनने की कोशिश कर रहा हूं। मैं एक ही नेटवर्क पर एक कंप्यूटर का उपयोग कर वाईफाई पर इस बंदरगाह से कनेक्ट करने में सक्षम होना चाहता हूं।एंड्रॉइड
मैं जब यह एक बंदरगाह के लिए बाध्य भी इसका अपवाद नहीं मिलता है, लेकिन जब मैं netstat जाँच यह कहते हैं:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 (null):4040 (null):* LISTEN
मैं इसे बाध्यकारी स्थानीय होस्ट करने के लिए, 0.0.0.0, वाईफ़ाई लैन आईपी के अनगिनत तरीकों की कोशिश की है SocketInetAddress
और InetAddress.getByName
के साथ डिवाइस का पता। कुछ भी काम नहीं करता है।
जब मैं एक ही WiFi में एक कंप्यूटर से पोर्ट से कनेक्ट करने की कोशिश (मैं दोनों netcat की कोशिश की है और जावा के Socket.connect()
), सभी मैं Wireshark में देख सकते हैं एक एआरपी अनुरोध है:
Who has [phone's LAN address]? Tell [computer LAN address].
यह समय समाप्त होने तक अनुरोध दोहराएं।
मैंने कंप्यूटर पर सर्वर सॉकेट सेट करके और उस पोर्ट से उस पोर्ट से कनेक्ट करके रिवर्स तरीके से प्रयास किया है, जो बहुत अच्छी तरह से काम करता है।
मेरा परीक्षण फोन कस्टम रोम के साथ एक सैमसंग स्पािका i5700 है।
कोई विचार?
संपादित करें: कोड इस रूप में सरल है:
ServerSocket server = new ServerSocket();
server.setReuseAddr(true);
server.setTimeout(0);
server.bind(new InetSocketAddress(4040));
Socket client = null;
while((client = server.accept()) == null);
// Connected
enter code here
enter code here
आप कुछ कोड दिखा सकते हैं? क्या आप मैनिफेस्ट फ़ाइल में सही अनुमति सेट करते हैं? – Flo
मैंने कुछ कोड के साथ प्रश्न अपडेट किया है। हां, मैंने मैनिफेस्ट में अनुमति इंटरनेट सेट किया है। – shuwo
'ServerSocket.accept()' शून्य वापस नहीं कर सकता है। – EJP