Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
code>connect()绑定到要使用的接口的本地地址,但这对其他程序不起作用,除非它们也提供该功能。例如,curl(1)实用程序允许您传递--interface命令行标志,以指示它绑定到特定接口。是在执行该程序的同一台机器上侦听该端口的进程吗?请使用t_C_Sockets_Tcp - Fatal编程技术网

code>connect()绑定到要使用的接口的本地地址,但这对其他程序不起作用,除非它们也提供该功能。例如,curl(1)实用程序允许您传递--interface命令行标志,以指示它绑定到特定接口。是在执行该程序的同一台机器上侦听该端口的进程吗?请使用t

code>connect()绑定到要使用的接口的本地地址,但这对其他程序不起作用,除非它们也提供该功能。例如,curl(1)实用程序允许您传递--interface命令行标志,以指示它绑定到特定接口。是在执行该程序的同一台机器上侦听该端口的进程吗?请使用t,c,sockets,tcp,C,Sockets,Tcp,code>connect()绑定到要使用的接口的本地地址,但这对其他程序不起作用,除非它们也提供该功能。例如,curl(1)实用程序允许您传递--interface命令行标志,以指示它绑定到特定接口。是在执行该程序的同一台机器上侦听该端口的进程吗?请使用telnet进行测试。它有用吗?不会的。您从中得出什么结论?gethostbyname接受域名并返回其相应的IP地址。您正在提供一个IP地址。此外,如果您使用的是Linux,那么请执行适当的错误处理。e、 g.使用perror方法。它会让您知道确


code>connect()绑定到要使用的接口的本地地址,但这对其他程序不起作用,除非它们也提供该功能。例如,
curl(1)
实用程序允许您传递
--interface
命令行标志,以指示它绑定到特定接口。

是在执行该程序的同一台机器上侦听该端口的进程吗?请使用telnet进行测试。它有用吗?不会的。您从中得出什么结论?gethostbyname接受域名并返回其相应的IP地址。您正在提供一个IP地址。此外,如果您使用的是Linux,那么请执行适当的错误处理。e、 g.使用perror方法。它会让您知道确切的错误。@mctylr实际上,如果没有服务器侦听,响应应该是立即的
econnreference
。90秒超时很可能根本无法到达远程服务器。@RileyE为什么您认为机器在192.168.0.1上。这是硬编码的,还是mac上有DHCP服务器。如果是硬编码的,您是如何在mac上配置NIC的?
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char **argv)
{
    int sd;
    int port;
    int start;
    int end;
    int rval;
    struct hostent *hostaddr;
    struct sockaddr_in servaddr;

    start = 2111;
    end   = 2112;
    for(port = start; port <= end; port++)
    {
        sd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
        if(sd == -1)
        {
            perror("Socket()\n");
            return (errno);
        }

        memset(&servaddr, 0, sizeof(servaddr));

        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons(port);

        hostaddr = gethostbyname("192.168.0.1");

        memcpy(&servaddr.sin_addr, hostaddr->h_addr, hostaddr->h_length);

        rval = connect(sd, (struct sockaddr *)&servaddr, sizeof(servaddr));
        if(rval == -1)
        {
            printf("Port %d is closed\n", port);
            close(sd);
        }
        else printf("Port %d is open\n", port);

        close(sd);
    }

    return 0;
}