2013-02-20 60 views
6

यदि मेरे पास String एक आईपी एड्रेस (आईपीवी 4 या आईपीवी 6) का प्रतिनिधित्व करता है तो मैं ServerSocket कैसे बना सकता हूं और आईपी पास या आईपीवी 6 की देखभाल किए बिना इस आईपी से बांध सकता हूं?
मुझे लगता है कि एक कन्स्ट्रक्टर है: ServerSocket(int port, int backlog, InetAddress bindAddr) लेकिन InetAddress किसी भी निर्माता और उसके उप-वर्गों को आईपीवी 4 और आईपीवी 6 के लिए विशिष्ट नाम देने की प्रतीत नहीं होती है।
तो मैं आईपी को सॉकेट कैसे बांध सकता हूं?मैं विशिष्ट आईपी में सर्वरकेट कैसे बांध सकता हूं?

उत्तर

20

आप फैक्टरी विधि INetAddress.getByName का उपयोग कर सकते हैं। यह पता लगाएगा कि किस सबक्लास का उपयोग करना है। उदाहरण के लिए:

InetAddress addr = InetAddress.getByName("127.0.0.1"); 
// or 
InetAddress addr = InetAddress.getByName("::1"); 

// and now you can pass it to your socket-constructor 
ServerSocket sock = new ServerSocket(1234, 50, addr); 
+0

क्या आपका मतलब है मेरे आईपी में पास करें और ऑब्जेक्ट वापस प्राप्त करें? – Jim

+0

@ जिम: हाँ, बिल्कुल! मैंने इसका उपयोग कैसे किया है इस पर एक उदाहरण जोड़ा है। – vstm

+2

सिर्फ एक नोट: डिफ़ॉल्ट 'बैकलॉग' 50 है: डी। –