0

在家里,我有 2 台设备,一台设备的 IP 地址为 10.0.0.2,它是服务器,另一台设备的 IP 地址为 10.0.0.6

所以,在客户端代码上,我有这段代码

  sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    /* Construct the server address structure */
    ServPort=3200;

    servIP="10.0.0.2";

    memset(&ServAddr, 0, sizeof(ServAddr));     /* Zero out structure */
    ServAddr.sin_family      = AF_INET;             /* Internet address family */
    ServAddr.sin_addr.s_addr = inet_addr(servIP);   /* Server IP address */
    ServAddr.sin_port        = htons(ServPort); /* Server port */

    /* Establish the connection to the server */
     i= connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr));

我完全能够从客户端 10.0.0.6 连接到 10.0.0.2 的服务器 代码执行成功。

然后我去图书馆,现在服务器的 IP 地址为 192.168.1.168,客户端设备的 IP 地址为 192.168.1.147

所以,我为客户相应修改的代码

   sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    /* Construct the server address structure */
    ServPort=3200;

    servIP="192.168.1.168";

    memset(&ServAddr, 0, sizeof(ServAddr));     /* Zero out structure */
    ServAddr.sin_family      = AF_INET;             /* Internet address family */
    ServAddr.sin_addr.s_addr = inet_addr(servIP);   /* Server IP address */
    ServAddr.sin_port        = htons(ServPort); /* Server port */

    /* Establish the connection to the server */
     i= connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr));

现在,我无法连接到服务器。

所以,我很困惑,所有的代码都是一样的,除了服务器设备和客户端设备的IP地址。在家里我可以成功运行代码,但不能在库中运行。这只是 TCP,所以它应该与任何防火墙有关。

4

0 回答 0