我创建了一个SNMP代理模拟器应用程序,它使用模拟设备的端口号161。有时它会在使用异常中发生端口alredy。我怎么知道161端口是否忙?
答案 0 :(得分:2)
只需启动您的应用程序。如果它获得BindException,则端口正在使用中。如果没有,您的应用程序可以运行。提前知道并没有真正给你买任何东西。
答案 1 :(得分:1)
使用 netstat 命令。
具体来说,
netstat -s [PORT_NO]
例如,
netstat -s 161
答案 2 :(得分:1)
只是补充说明。我认为您可能被禁止使用低端口号(如果不是root用户,则安全策略) - 尝试使用更高的数字,即10161。
答案 3 :(得分:0)
在Windows上,您可以使用netstat
和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
在我的情况下,显然是Windows SNMP服务使用端口161.在您的情况下,它可能是另一个进程。
答案 4 :(得分:0)
1)ps -efww | grep 161
2)netstat -anp | grep 161
答案 5 :(得分: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