2014-04-21 6 views
5

मेरे पास एक ऐसा एप्लिकेशन है जिसे मैंने विरासत में मिला है जो हमारे इन-हाउस टेस्ट उपकरण से यूडीपी प्रसारण के लिए पोर्ट 7001 पर सुनता है, और मैंने हाल ही में एक और एप्लीकेशन अपडेट किया है जिसे एक ही काम करने की आवश्यकता है। दोनों अनुप्रयोग एक ही कंप्यूटर पर सह-अस्तित्व में सक्षम होना चाहिए।मैं कैसे पता लगा सकता हूं कि विंडोज में एक टीसीपी/आईपी पोर्ट को कौन सा प्रोग्राम सुन रहा है?

वर्तमान में, जब मेरा हाल ही में अपडेट किया गया एप्लिकेशन यूडीपी प्रसारण सुनने के लिए बंदरगाह से जुड़ने का प्रयास करता है और विफल रहता है तो यह रिपोर्ट करता है कि बंदरगाह उपलब्ध नहीं है और सुझाव देता है कि विरासत में ऐप शायद चल रहा है। मैं यह पता लगाने के लिए अपना आवेदन कैसे प्राप्त कर सकता हूं कि वास्तव में उस पोर्ट पर कौन सा एप्लिकेशन सुन रहा है? मैंने Google खोज की है और यहां तक ​​कि इस साइट को भी खोजा है लेकिन अब तक मैं कमांड लाइन पर टास्क मैनेजर, टीसीपीवीव या नेटस्टैट का उपयोग करने के अलावा कुछ भी नहीं ढूंढ पाया।

मैं ऐसी तकनीक पसंद करूंगा जो या तो विंडोज एपीआई या विंडोज सिस्टम COM घटक का उपयोग करे, क्योंकि दोनों एप्लिकेशन वीबी 6 में लिखे गए हैं। (मुझे पता है, मुझे पता है, लेकिन मुझे इन अनुप्रयोगों को बनाए रखना चाहिए क्योंकि वे मिशन महत्वपूर्ण हैं।) हालांकि, अगर मेरे नए विकास प्रयासों में मुझे इसकी ज़रूरत है तो एक .NET समाधान भी उपयोगी होगा।

+0

GetTcpTable2 आपको एक प्रक्रिया आईडी प्राप्त कर सकता है। इसी तरह का सवाल यहां [लिंक] (http://stackoverflow.com/questions/13295277/check-on-avaiable-port-using-wmi-win32-class) – user2773289

+0

पता नहीं है कि आप इसका उपयोग कर सकते हैं या नहीं, लेकिन एमएसडीएन कुछ नमूना कोड के साथ उपरोक्त प्रविष्टि http://msdn.microsoft.com/en-us/library/windows/desktop/bb408406(v=vs.85).aspx –

+0

पर है, आप यह जानकारी WMI के माध्यम से भी प्राप्त कर सकते हैं। बहुत आसान बात है। – EJP

उत्तर

2
netstat -n -o 

यही प्रक्रिया आईडी दिखाई देगा और वहाँ से आप या तो गोटो देखें टास्क प्रबंधक की प्रक्रिया दर्शक में देख सकते हैं, -> कॉलम ... और प्रक्रिया आईडी (पीआईडी) की जाँच करें। फिर आप उस बंदरगाह पर सुनवाई की प्रक्रिया का नाम देख सकते हैं।

बेशक, आप इसे पूरा करने का प्रोग्रामेटिक तरीका चाहते हैं और GetTCPTable2 API सर्वोत्तम है जैसा पहले से ही सुझाव दिया गया था। वास्तव में, यदि आप netstat.exe के लिए आईएटी (आयात पता तालिका) देखते हैं, तो यह वास्तव में उस जानकारी को प्राप्त करने के लिए उस API का उपयोग करता है।

एक कमांड विंडो के साथ सीधे संवाद करने और पाइप का उपयोग करके इसका आउटपुट प्राप्त करने का एक तरीका है और यह ठीक काम करेगा लेकिन आदर्श तरीका केवल उसी एपीआई नेटस्टैट उपयोगों का उपयोग करना है।

+0

धन्यवाद, यह मुझे चाहिए जहां मुझे चाहिए। मेरे पास इसके साथ आगे जाने का समय नहीं है, लेकिन जैसे ही मेरे पास कुछ कामकाजी कोड है, मैं इसे यहां पोस्ट करूंगा। –

+0

केवल 'netstat --all --program | grep 8090' मेरे लिए काम किया। बस बांटने को। नेट-टूल्स 1.60 नेटस्टैट 1.42 (2001-04-15) –

संबंधित मुद्दे

 संबंधित मुद्दे