मैं जावा NIO- आधारित सॉकेट बनाने की कोशिश कर रहा हूँअपाचे मीना का उपयोग कर सर्वर। मुझे वास्तव में रिमोट होस्ट के पोर्ट को जानने की जरूरत है, न कि केवल आईपी पते की, और ऐसा लगता है कि मीना केवल सॉकेटएड्रेस (जिसे इनएटड्रेस पर डाउनकास्ट किया जा सकता है) को उजागर करता है। मैं InetAddress से IP पता प्राप्त कर सकता हूं, लेकिन मैं पोर्ट नंबर प्राप्त करने के लिए सामान्य रूप से Socket.getPort () का उपयोग करता हूं, लेकिन मीना इन निम्न-स्तरीय वस्तुओं को अस्पष्ट करती है। क्या कोई और तरीका है? धन्यवाद!
उत्तर:
जवाब के लिए 8 № 1डाउनकास्ट करें SocketAddress
सेवा मेरे InetSocketAddress
(नहीं InetAddress
, जो है नहीं एक उप-वर्ग); यह उजागर करता है port
एक्सेसर.
जवाब के लिए 6 № 2
मेरा एक पुराना पुराना संस्करण है, लेकिन इसने मेरे लिए काम किया,
public int getPort(SocketAddress address) {
return ((InetSocketAddress) address).getPort();
}