客户端服务器与套接字 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 地址(可以多个)。
您还应该使端口号可配置。
我制作了一个程序,包括服务器端和客户端,它允许我从客户端向服务器发送消息。它在本地工作。我在客户端输入./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 地址(可以多个)。
您还应该使端口号可配置。