gpt4 book ai didi

c++ - 如何使 .cpp 文件充当可访问的服务器

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:39 24 4
gpt4 key购买 nike

我用 Linux (Cent OS 7.0) 和 C++ 编写了一个简单的程序。它是一个非常小的服务器,它将一串字符发送回客户端。但我的问题是我不知道如何使用 IP 地址访问该服务器?

我使用了 Linux Socket Interface (Berkeley),在定义地址的部分中,我的代码执行以下操作:

    serverObject.
sin_family = AF_INET;
serverObject.sin_addr.
s_addr = htonl(INADDR_ANY);
serverObject.
sin_port = htonl(portNumber);

我使用 INADDR_ANY 作为我的服务器地址,其定义如下:

/* Address to accept any incoming messages.  */

现在,我应该如何运行服务器,然后使用我的简单客户端程序向其发送请求。我的简单客户端程序接受一个 IP 地址作为其目标地址,该地址应该是发往服务器的地址。那我该怎么联系呢?

最佳答案

INADDR_ANY 用于指定系统中所有事件网络接口(interface)应绑定(bind)到。因此,如果您连接到多个网络,您将能够与来自所有这些网络的连接进行通信。不过,大多数系统通常只有一个,这仍然表明,如果绑定(bind)到该接口(interface)的 IP 碰巧发生更改,您仍然会绑定(bind)到该接口(interface)。

因此,一旦指定了INADDR_ANY,就需要根据以下规则发起连接:

  1. 如果您从同一台物理机进行连接,最简单的方法是使用环回接口(interface) (127.0.0.1)。不过,您仍然可以执行 (2)。
  2. 如果您从另一台计算机进行连接,则需要从该计算机选择可访问的服务器 IP 地址。如上所述,如果您的服务器仅连接到一个网络,则这只是服务器的 IP 地址。在内部网络中,该地址通常类似于 192.168.x.y 或 10.0.x.y,但并非必须如此。
  3. 如果您从使用网关访问服务器的不同网络进行连接,则您需要在相关路由器中设置端口转发,以便当它们收到端口 X 的连接时,它们会知道在内部将其传输到您的服务器。

关于c++ - 如何使 .cpp 文件充当可访问的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554287/

24 4 0
文章推荐: html - 当用户仅使用 css 放大时,是否可以保持
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com