客户端服务器与套接字 C 的基本通信

Client server basic communication with socket C

我制作了一个程序,包括服务器端和客户端,它允许我从客户端向服务器发送消息。它在本地工作。我在客户端输入./client "message",在服务器端显示message。所以一切正常。好的,现在我想接受它 "online",我的意思是我想在通过 virtualbox 模拟的两台 debian 机器之间发送消息。该怎么办?我认为将IP地址调整到正确的位置很重要。我在客户端代码中使用的 Atm 127.0.0.1 是 LOCALHOST。在客户端所以我必须把服务器 IP?这意味着服务器需要静态 IP?

您将必须使用服务器 IP,如果它不是静态的,则可以更改。您还必须考虑端口号,以及它在连接的两端是否打开。否则,网络将停止流入和流出客户端的流量。静态 IP 最好,但您也可以考虑允许用户在命令中输入 IP 地址,例如

./ client "message" -ip="192.168.0.1:25534"

这样你可以在多台机器上使用它,如果需要的话,你可以通过让他们输入它来适应 IP 的变化。

客户端更改:

可配置服务器IP和端口。您可以通过命令行参数、环境变量或配置文件来执行此操作。如果目标 OS 是 MS Windows,您也可以选择通过注册表设置来完成。

服务器更改:

当您 bind 将服务器套接字连接到一个地址时,您需要指定一个固定 IP 或 INADDR_ANY。如果你绑定到 127.0.0.1 服务器将只接受来自同一台机器的连接。 INADDR_ANY 会将套接字绑定到服务器的所有 IP 地址(可以多个)。 您还应该使端口号可配置。