3

シミュレートされたデバイスのポート番号161を使用するSNMPエージェントシミュレータアプリケーションを作成しました。場合によっては、ポートが使用中の例外として発生することがあります。161ポートがビジーであるかどうかをどのように知ることができますか?

4

6 に答える 6

2

アプリケーションを起動するだけです。BindException を取得した場合、ポートは使用中です。そうでない場合は、アプリケーションを実行できます。それを事前に知っていても、実際には何も得られません。

于 2012-10-05T07:15:43.457 に答える
1

netstatコマンドを使用する。

具体的には、

netstat -s [PORT_NO]

例えば、

netstat -s 161

  1. http://www.techrepublic.com/blog/security/list-open-ports-and-listening-services/443
  2. http://www.speedguide.net/faq_in_q.php?qid=115
于 2012-10-05T05:06:12.107 に答える
1

ただの補足です。低いポート番号の使用が禁止されている可能性があると思います (root ユーザーでない場合のセキュリティ ポリシー)。より高い番号、つまり 10161 を使用してみてください。

于 2012-10-06T13:02:57.853 に答える
0

netstatWindows では、とを使用できますtasklist。例えば、

netstat -aon | findstr 161

その出力は

C:\Program Files\Microsoft Visual Studio 9.0\VC>netstat -aon |findstr 161
  UDP    0.0.0.0:161            *:*                                    1620
  UDP    [::]:161               *:*                                    1620

次に使用しますtasklist

tasklist /fi "PID eq 1620"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
snmp.exe                      1620 Services                   0      1,172 K

私の場合、明らかにポート 161 を使用するのは Windows SNMP サービスです。あなたの場合、それは別のプロセスである可能性があります。

于 2012-10-05T09:23:06.697 に答える
0
1)ps -efww | grep 161   

2)netstat -anp | grep 161
于 2012-10-05T11:44:54.430 に答える
0

次のステートメントは私にとってはうまくいきます。

netstat -lnp

使用例:

appuser@-app:~$ sudo netstat -lnp |grep 162
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1162/mysqld
udp6       0      0 127.0.0.1:162           :::*                                6830/java
于 2012-12-18T09:13:23.587 に答える