如何知道客户端服务器程序上的主机名

时间:2013-12-10 04:16:31

标签: linux sockets client-server host

我正在使用套接字执行有关客户端服务器通信的程序。我在互联网上看到了客户端服务器程序的例子,但我有一个问题。如何获得主机名?我在下面链接的网页上看到了一个客户端程序示例。程序从命令行参数中获取用户的主机名,但我怎么知道主机名?我尝试使用我的用户名,但它说主机没有找到。我在同一台机器上运行。非常感谢你的时间。

客户端: http://www.tutorialspoint.com/unix_sockets/socket_client_example.htm

服务器: http://www.tutorialspoint.com/unix_sockets/socket_server_example.htm

4 个答案:

答案 0 :(得分:1)

如果您的客户端和服务器位于同一主机上,主机名为localhost,或者您可以使用该计算机的名称,或者您可以使用127.0.0.1

答案 1 :(得分:1)

假设您指的是当前正在运行的主机,请使用 gethostname

int main(int argc, char *argv[])
{
    int ret;
    char buffer[100];

    if ((ret = gethostname(buffer, sizeof(buffer))) == -1)
    {
        perror("gethostname");
        exit(1);
    }    

    printf("hostname is: %s\n", buffer);

    return(0);
}

答案 2 :(得分:1)

主机名与获取主机名的用户名不同使用命令“hostname” 并在命令行中使用此主机名

命令:

主机名 - > gethostname

hostname<名称> - >名称为

的sethostname

答案 3 :(得分:0)

对于客户端服务器程序,客户端必须知道要与之通信的计算机的主机名或IP地址。

想象一下,如果你开车去某个特定的商店,你需要知道到达那里的商店的地址。类似地,客户端需要与之通信的主机的地址。

如果您正在运行自己的客户端和服务器,请在计算机中键入hostname,它将为您提供主机名。通常您需要主机名和端口,但在简单的示例程序中,该值可能是硬编码的。