我在wlan上使用BSD套接字。我注意到我的服务器计算机的IP地址在连接时偶尔会发生变化。问题是我将ip地址作为文字字符串输入到我的代码中。因此,每当它发生变化时,我都必须进入代码并在那里进行更改。如何更改代码以便它将使用当时的ip?这是服务器代码中的调用
if ((status = getaddrinfo("192.168.2.2", port, &hints, &servinfo)) != 0)
和客户端是一样的。我为双方的地址尝试了NULL,但客户端无法连接,只是给了我一个“拒绝连接”错误。
感谢您的帮助。
答案 0 :(得分:3)
使用可在主机文件或DNS中查找的域名,而不是IP地址。
答案 1 :(得分:1)
命令行参数怎么样?
int main( inr argc, char* argv[] ) {
const char* addr = "myfancyhost.domain.com"; /* default address */
if ( argc > 1 ) {
addr = argv[1]; /* explicit address */
}
if ((status = getaddrinfo(addr, ...
答案 2 :(得分:1)
为您的服务器命名,并使用gethostbyname
查找其地址(通常,将服务器名称放入配置文件中而不是对其进行硬编码,但如果可以,则硬编码为默认值找到配置文件没有伤害。)