/********************************************************************/ /* */ /* PORTCHK : PORT 検査 */ /* */ /* Office Quattro Co,.Ltd 2005/9/16 10:44:20 created */ /* */ /********************************************************************/ #include #include #include #include #include #include #include #include #include #define TRUE 0 #define FALSE -1 #define SERV_HOST_ADDR "127.0.0.1" #define MAXPORT 1024 #define BUFLEN 1024 #define SBUFLEN 256 /***********************/ /* 関数の定義 */ /***********************/ /********************************************************************/ /* m a i n --- main module of this pgm */ /*------------------------------------------------------------------*/ /* Parameter : 1. PORT[4] */ /* 2. RESULT[4] */ /* */ /********************************************************************/ void main(int argc, char *argv[]){ struct sockaddr_in addr; struct servent *sent; int fd, i, j, rtn, n; char buf[BUFLEN]; int PORT; char result[6]; /*[ パラメータの取得 ]*/ PORT = atoi(argv[1]); /* ソケットの準備 */ fd = socket(AF_INET, SOCK_STREAM, 0); memset((char*)&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(SERV_HOST_ADDR); addr.sin_port = htons((short)PORT); memset(result, 0, sizeof(result)); /* サーバーと接続 */ if((rtn = connect(fd, (struct sockaddr *)&addr, sizeof(addr))) == -1){ memcpy(result, "FALSE", 5); } else memcpy(result, "TRUE ", 5); close(fd); memcpy(argv[2], result, 5); exit(0); }