C#を使用してポートが使用可能かどうかを判断する方法はありますか?既に使用されているポートを使用してWCF ServiceHostインスタンスを起動する前に確認したい:ポートが使用されているかどうかを確認しますか?
7
A
答えて
6
ポートが使用可能かどうかは判断できません。あなただけの、あなたがバインドされ、特定のソケットを持つと聞いてポートを制御していない限り、ポートが過去
にいくつかの時点で入手できたことをポート
- を決定することができますポート上では、別のプロセスが来てポートを制御することが可能です。
ポートが利用可能かどうかを知る唯一の信頼できる方法は、それをリッスンすることです。成功すれば、ポートは使用可能であり、制御権を持っています。さもなければ、を越えて潜在的に現在ののある時点で、そのポートは別のエンティティによって制御されていたことがわかります。
1
In C#, how to check if a TCP port is available?については、オリジナルのポスターではクライアントやサーバーについて話しているのかどうか分からないと思うので、接続したいクライアントやポートで受信したいサーバーについての回答もあります。
JaredParの回答は正しいです(これ以上!)が、時には不便かもしれません。
あなたは、他のサーバがあなただけにチェック(または不定期の故障のために気にしない)ポートをつかんされていないことを合理的に確実である場合、あなたは(https://stackoverflow.com/a/570461/586754に似て、http://www.codeproject.com/Tips/268108/Find-the-open-port-on-a-machine-using-Csharp?msg=4176410#xx4176410xxから)試すことができます。
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. powershellを使用してポートが使用されているかどうかを確認する方法
- 2. WindowsでTCP/IPポートが既に使用されているかどうかを確認しますか?
- 3. Visual Basic - ポートが開いているかどうかの確認
- 4. ポート80が拒否されているかどうかを確認しますか?
- 5. glibcが使用されているかどうかを確認する方法
- 6. Sitecore:ImageMagickが使用されているかどうかを確認するには?
- 7. インテントフィルタがアプリケーションで使用されているかどうかを確認する
- 8. ダーティチェックが使用されているかどうかを確認するには?
- 9. どのポートが使用されているかを確認してください
- 10. ポートでipが使用可能かどうかを確認していますか?
- 11. PHPを使用してYouTube動画が削除されているかどうかを確認しますか?
- 12. アプリがXamarinを使用して構築されているかどうかを確認しますか?
- 13. flock()を使用してファイルが既にロックされているかどうかを確認しますか?
- 14. 7.1.1 - SHORTCUTが使用されているかどうか確認する
- 15. Powershellでポートが開いているかどうかを確認する方法
- 16. UIViewがタッチされているかどうかを確認しますか?
- 17. ファイルが更新されているかどうかを確認しますか?
- 18. Javascript:URLが変更されているかどうかを確認しますか?
- 19. IISがインストールされているかどうかを確認しますか?
- 20. 現在位置サービスが使用されているかどうかを確認
- 21. #ifdefを使用してXlibが使用されているかどうかを確認するには?
- 22. VBA - ビットキーを使用してパラメータが設定されているかどうかを確認します。
- 23. MsiGetProductInfoを使用してMicrosoft Wordがインストールされているかどうかを確認します
- 24. ユーザーがdbで確認されているかどうかを確認
- 25. Authguard anglefire2電子メールが確認されているかどうかを確認
- 26. AppleScriptを使用してシェイプがワープまたはスケールされているかどうかを確認する
- 27. どのWebサーバーが使用されているかを確認します
- 28. ALTキーが押されているかどうかを確認
- 29. アクティブレコードテーブルが変更されているかどうかを確認
- 30. ログイン中にユーザーがdeviseを使用して確認したかどうか確認してください