15 Haziran 2012 Cuma

Hangi Program Hangi Portu Dinliyor?

Merhaba,


Genelde sistemcileri daha çok ilgilendiren bir konu ama soket programlama yaparken bizi çıldırtabilecek bir durum.  XYZ Server ile iletişime geçmek istiyorsunuz diyelim. XYZ server’ın 139 portunu kullansın. Windows servislerinden start etmeye çalışıyoruz ama bu port başka bir program tarafından dinlendiğinden program başlatılamadı gibi bir hata alıyoruz. Şimdi ne yapacağız?



XP/Vista/Windows7/Server 2003/2008 ‘de geçerlidir. Diğer sürümler de test etmedim ama büyük ihtimalle olur.


Öncelikle Start->Run->cmd ile Command Line(Komut Satırı)’a geçiyoruz. Ardından aşağıdaki kodu yazıyoruz.


netstat -ano -p tcp


Karşımıza gelen listeden IP:Port şeklindeki Local Address sutununu inceliyoruz ve hangi programın hangi portu dinlediğine bakıyoruz. Biz bu senaryo da 139 nolu portu hangi programın dinlediğine bakmak istiyorduk.







192.168.2.77 benim local ağdaki IP’dir. Yani 192.168.2.77'nin üzerinde çalıştığımız makine için 127.0.0.1'den bir farkı yoktur. Şimdi en son sutüna bakıyoruz. Buradaki PID(Process ID)’lerden ilgili portu dinleyen uygulamanın 4 olan PID’sini öğreniyoruz.


Şimdi CTRL+SHIFT+ESC ile Task Manager(Görev Yöneticisi)’ı açıyoruz. Buradan View->Select Columns->PID‘yi seçiyoruz. Şimdi task manager’ınız büyük ihtimalle ekran görüntüsündekine yakın olacaktır. Sizde Threads’ler olmayabilir. Önemli değil.





istede de görüldüğü gibi PID’si 4 olan System.exe imiş. Tabi bunu sakın durdurmaya çalışmayın.  Biz bunun yerine Dummy.exe olduğunu farz edelim eğer UI(User Interface – Kullanıcı Arayüzü) ile programı stop edebiliyorsak veya dinlediği portu değiştirebiliyorsak önce bunu yapmaya çalışalım eğer değiştiremiyorsak ve kapatamıyorsak burada görevi sonlandırabiliriz. Ardından XYZServer’ı çalıştırabiliriz.


Biraz uzun bir işlemmiş gibi durdu böyle anlatınca ama emin olun maximum 5dk’nızı almaz. 


Saygılarımla.




Kaynak : http://www.hakandamar.com/page/4


Hiç yorum yok: