0

ソケットによって外部プログラムと通信する Firefox アドオンを開発しています。このプログラムは、このアドオンが必要なときに、指定されたポートにローカル ソケット サーバーを作成します。このアプリケーションが既にこのポートを開いているかどうか、このアドオンから確認したいと思います。

サーバーがまだ作成されていない Win7 では、nsIRequestObserver::onStopRequest のアドオン NS_ERROR_CONNECTION_REFUSED によって作成されたソケットで受信しますが、このエラーを受信したときに特定のポートが開いていないと感じたら?

4

2 に答える 2

3

接続を試み、接続が成功するかどうかを確認します。そうでない場合、ポートは到達可能 (開いている) ではありません。それが最も明白で簡単な答えです。

他の低レベルのソリューションでは、何らかの方法で OS 自体をポーリングする必要があります。これはクロスプラットフォーム固有のものであり (プラットフォームごとに実装を作成する必要があります)、すぐに利用できる API がないため、C/C++ または少なくとも js-ctypes をいじるか、いくつかをハックする必要があります。醜い「このプログラムを実行して出力を確認する」もの。これらはすべて、ファズに値するものではありません。

于 2013-08-13T15:10:23.690 に答える
2

Windows でどの「インバウンド ポート」が使用されているかを知りたい場合は、cmd を使用できます。

cmd の開き方がわからない場合は、windows-key+r を押して実行ダイアログを開きます。cmdと入力してEnterキーを押します

入力netstat -aしてEnterキーを押すと、すべての「リッスン」ポートがリストされます。

詳細 - http://www.techrepublic.com/blog/it-security/list-open-ports-and-listening-services/

于 2013-08-13T12:44:13.480 に答える