Bağlantı noktası olup olmadığını belirlemek için C# kullanarak bir yol var mı? Daha önce kullanmış olduğum bir bağlantı noktasını kullanarak bir WCF ServiceHost örneğini başlatmadan önce kontrol etmek istiyorum :-)Bağlantı noktasının kullanımda olup olmadığını belirleme?
cevap
Bir bağlantı noktasının kullanılabilir olup olmadığını belirleyemezsiniz. Yalnızca belirli bir soket bağlı olan ve dinleyerek size port kontrol sürece bir liman geçmiş
bir noktada kullanılabilir Bu bir port
- belirleyebilir limanda, başka bir işlemin gelip limanın kontrolünü ele geçirmesi mümkündür.
Bir bağlantı noktasının müsait olup olmadığını bilmenin tek güvenilir yolu, onu dinlemeye çalışmaktır. Eğer başarılı olursanız liman kullanılabilir ve kontrolünüz var. Aksi halde, 'un'u geçtiği ve potansiyel olarak mevcut olan noktanın başka bir varlık tarafından kontrol edildiğini biliyorsunuzdur.
In C#, how to check if a TCP port is available?'a gelince, asıl posterin istemci veya sunucu hakkında konuştuğundan emin olmadığına inanıyorum, ayrıca yanıtlar istemciyi bağlanmak isteyen istemciyle ya da bir bağlantı noktasını dinlemek isteyen sunucuyla ilgili.
JaredPar'ın cevabı doğrudur (bundan daha fazlası!) Bazen de rahatsız edici olabilir.
başka hiçbir sunucu sadece kontrol noktasını kapma (veya ara sıra başarısızlığın umurumda değil) bu makul bazı iseniz, (https://stackoverflow.com/a/570461/586754 benzer http://www.codeproject.com/Tips/268108/Find-the-open-port-on-a-machine-using-Csharp?msg=4176410#xx4176410xx itibaren) deneyebilirsiniz:
public static int GetOpenPort(int startPort = 2555)
{
int portStartIndex = startPort;
int count = 99;
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
IPEndPoint[] tcpEndPoints = properties.GetActiveTcpListeners();
List<int> usedPorts = tcpEndPoints.Select(p => p.Port).ToList<int>();
int unusedPort = 0;
unusedPort = Enumerable.Range(portStartIndex, 99).Where(port => !usedPorts.Contains(port)).FirstOrDefault();
return unusedPort;
}
- 1. Seri bağlantı noktasının normal olup olmadığını belirleme COM veya SPP
- 2. Uzak bağlantı noktası kullanımda olup olmadığını test edin
- 3. Bağlantı noktasının açık olup olmadığını kontrol edin ANT
- 4. Linux'ta C'de bir bağlantı noktasının kullanımda olup olmadığı nasıl tespit edilir?
- 5. NSString boş olup olmadığını belirleme
- 6. JavaScript değerinin "tamsayı" olup olmadığını belirleme
- 7. Oynatıcının sunucu veya istemci olup olmadığını belirleme
- 8. YouTube videosunun geniş ekran olup olmadığını belirleme
- 9. socket.io/node.js sunucunun kapalı olup olmadığını belirleme
- 10. Bir sınıf başvurulan olup olmadığını belirleme C#
- 11. Açı 180 dereceden fazla olup olmadığını belirleme
- 12. Nesnenin tam sayı olup olmadığını belirleme
- 13. Sınırlarda Lat/Lng olup olmadığını belirleme
- 14. Magento modülünün etkin olup olmadığını belirleme
- 15. Eylem çubuğu bölünmüş olup olmadığını belirleme
- 16. Django - model sınıfının soyut olup olmadığını belirleme
- 17. Pencere window.showModalDialog tarafından açılmış olup olmadığını belirleme
- 18. İki dizenin Javascript'te benzer olup olmadığını belirleme?
- 19. Python'da karakter kümesinin var olup olmadığını belirleme
- 20. Dizi anahtar değerinin boş olup olmadığını belirleme
- 21. Tarayıcı sekmesinin etkin olup olmadığını belirleme - IE mi?
- 22. Bağlantı noktasının URL'ye eklenmesini engelle
- 23. Yum Python API ile yüklü paket olup olmadığını belirleme?
- 24. Bir tablo görünümü hücresinin görünür olup olmadığını belirleme
- 25. Bir liste görünüm kutusunda seçili olup olmadığını belirleme
- 26. Bir e-posta adresinin 'public' olup olmadığını belirleme
- 27. Yazım olup olmadığını belirleme ICollection <T>
- 28. Dosyanın perl içinde bir PDF olup olmadığını belirleme
- 29. Bir php dizgesinde geçen sürenin olup olmadığını belirleme
- 30. Bir yakut komut dosyasının çalışıyor olup olmadığını belirleme