2010-08-03 13 views
6

मेरे सेवाओं फ़ाइल (सी: \ WINDOWS \ system32 \ drivers \ etc \ सेवाएं):जावा में सेवा से पोर्ट नाम?

echo    7/tcp 
echo    7/udp 
discard    9/tcp sink null 
discard    9/udp sink null 
systat    11/tcp users     #Active users 
systat    11/udp users     #Active users 
daytime   13/tcp 
daytime   13/udp 
qotd    17/tcp quote     #Quote of the day 
qotd    17/udp quote     #Quote of the day 
chargen   19/tcp ttytst source   #Character generator 

मैं एक तरह से एक बंदरगाह से कन्वर्ट करने के लिए सेवा करने के लिए खोजने की कोशिश कर रहा हूँ सेवा की मैपिंग के पोर्ट का एक समूह है जावा एपीआई (पार्सिंग के बजाए) या तृतीय पक्ष पुस्तकालयों के माध्यम से प्रोग्रामेटिक रूप से नाम?

स्यूडोकोड:

Port port = new Port("443","tcp"); 
String service = port.getService(); 
System.out.println(service); //prints "https" 

कोई अच्छा तरीका यह है है?

+0

+1 अच्छी तरह से संरचित खोज –

उत्तर

2

क्या आप देख रहे हैं लिनक्स getservbyport() सिस्टम कॉल की एक जावा कार्यान्वयन है। http://github.com/wmeissner/jnr-netdb पर एक नज़र डालें। साथ ही, java getservbyport

+0

पार्सिंग शामिल नहीं है, यदि संभव हो तो मूल कार्यों का उपयोग करने का प्रयास करता है /etc/सेवाओं को सीधे पार्सिंग करने के लिए, और अंततः में उपयोग के लिए एक अंतर्निर्मित तालिका में जहां न तो देशी कोड, न ही फाइल सिस्टम पहुंच संभव है। – YoK

0

मुझे नहीं लगता कि इस उद्देश्य के लिए जावा में कुछ एपीआई है। आपको या तो इस फ़ाइल को पार्स करने या पोर्ट फॉर्म मैपिंग को कुछ रूपों (गुण फ़ाइल, डीबी इत्यादि) में बनाए रखने की आवश्यकता होगी। सिस्टम फ़ाइल से पार्स करने के लिए उदाहरण है:

http://www.javafaq.nu/java-example-code-162.html

+0

के लिए +1 मुझे लगता है कि अनुरोध एक समाधान के लिए था जिसमें/etc/Services फ़ाइल –