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

时间:2017-11-06 14:28:08

标签: c sockets client-server

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

2 个答案:

答案 0 :(得分:1)

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

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

通过这种方式,您可以在多台计算机上使用它,如果需要,您可以通过让它们输入来满足IP的变化。

答案 1 :(得分:1)

客户更改:

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

服务器更改:

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