/ / Java: मैं InetAddress से कनेक्टेड पोर्ट कैसे प्राप्त कर सकता हूं? - जावा, सॉकेट्स, अपाचे-मीना

जावा: मैं एक InetAddress से कनेक्ट पोर्ट कैसे प्राप्त कर सकता हूं? - जावा, सॉकेट, अपाचे-मीना

मैं जावा NIO- आधारित सॉकेट बनाने की कोशिश कर रहा हूँअपाचे मीना का उपयोग कर सर्वर। मुझे वास्तव में रिमोट होस्ट के पोर्ट को जानने की जरूरत है, न कि केवल आईपी पते की, और ऐसा लगता है कि मीना केवल सॉकेटएड्रेस (जिसे इनएटड्रेस पर डाउनकास्ट किया जा सकता है) को उजागर करता है। मैं InetAddress से IP पता प्राप्त कर सकता हूं, लेकिन मैं पोर्ट नंबर प्राप्त करने के लिए सामान्य रूप से Socket.getPort () का उपयोग करता हूं, लेकिन मीना इन निम्न-स्तरीय वस्तुओं को अस्पष्ट करती है। क्या कोई और तरीका है? धन्यवाद!

उत्तर:

जवाब के लिए 8 № 1

डाउनकास्ट करें SocketAddress सेवा मेरे InetSocketAddress (नहीं InetAddress, जो है नहीं एक उप-वर्ग); यह उजागर करता है port एक्सेसर.


जवाब के लिए 6 № 2

मेरा एक पुराना पुराना संस्करण है, लेकिन इसने मेरे लिए काम किया,

public int getPort(SocketAddress address) {
return ((InetSocketAddress) address).getPort();
}