当前位置: 技术问答>linux和unix
通过c程序来判断一个端口是否连通。
来源: 互联网 发布时间:2016-02-15
本文导语: 通过c程序来判断一个端口是否连通。 要求是这样的。有服务器上有一个进程总是死,为了判断它是否还在工作,用C写一个程序不断telnet这个端口,如果没有响应,则先停后起。但是目前存在问题,不知道c里面有什...
通过c程序来判断一个端口是否连通。
要求是这样的。有服务器上有一个进程总是死,为了判断它是否还在工作,用C写一个程序不断telnet这个端口,如果没有响应,则先停后起。但是目前存在问题,不知道c里面有什么函数能判断某ip下某端口是否有相应,请高人指点
要求是这样的。有服务器上有一个进程总是死,为了判断它是否还在工作,用C写一个程序不断telnet这个端口,如果没有响应,则先停后起。但是目前存在问题,不知道c里面有什么函数能判断某ip下某端口是否有相应,请高人指点
|
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
int fd, retval;
struct sockaddr_in addr;
struct timeval timeo = {3, 0};
char buf[1024];
int i;
socklen_t len;
fd_set set;
fd = socket(AF_INET, SOCK_STREAM, 0);
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(argv[1]);
addr.sin_port = htons(atoi(argv[2]));
if ((i=connect(fd, (struct sockaddr*)&addr, sizeof(addr))) == 0)
{
close(fd);
perror("connected success:");
return 0;
}
perror("connected error:");
close(fd);
return 0;
}
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
int fd, retval;
struct sockaddr_in addr;
struct timeval timeo = {3, 0};
char buf[1024];
int i;
socklen_t len;
fd_set set;
fd = socket(AF_INET, SOCK_STREAM, 0);
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(argv[1]);
addr.sin_port = htons(atoi(argv[2]));
if ((i=connect(fd, (struct sockaddr*)&addr, sizeof(addr))) == 0)
{
close(fd);
perror("connected success:");
return 0;
}
perror("connected error:");
close(fd);
return 0;
}