用于检查端口是否正在运行的脚本

时间:2013-04-12 15:57:13

标签: perl aix

我需要帮助以检查我的盒子中是否有两个本地端口正在运行,如果是这种情况则打开一个端口。

例如:

DB2端口:50001 MQ端口:1414

如果两者都打开,请打开端口45以便在没有其中任何一个的情况下进行侦听,关闭脚本端口。

我正在运行AIX 7.1

1 个答案:

答案 0 :(得分:0)

use Socket;

socket(HSOCK, AF_INET, SOCK_STREAM, getprotobyname('TCP'));
$address = sockaddr_in(50001, inet_aton('0.0.0.0'));
if (! bind(HSOCK, $address)) {
  $address = sockaddr_in(1414, inet_aton('0.0.0.0'));
  if (! bind(HSOCK, $address)) {
    $address = sockaddr_in(45, inet_aton('0.0.0.0'));
    bind(HSOCK, $address) or die "bind 45 failed";
    listen(HSOCK, 5) or die "listen 45 failed";
     . . . # accept / loop
  }
}