我正在用 C++ 编写一个使用网络套接字的程序。我需要找出计算机的 IP 地址是什么,以便将其显示给用户。该程序必须在 Windows 和 Linux 上运行。
我在某处听说一台计算机可以有多个 IP 地址。我想要不同计算机上的其他程序可以用来连接到计算机的那个。
这是我已经拥有的相关代码(变量在其他地方声明):
master = new fd_set;
FD_ZERO(master);
struct sockaddr_in my_addr;
listener = socket(PF_INET, SOCK_STREAM, 0);
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(port);
my_addr.sin_addr.s_addr = INADDR_ANY;
memset(my_addr.sin_zero, '\0', sizeof my_addr.sin_zero);
bind(listener, (struct sockaddr *)&my_addr, sizeof my_addr);
listen(listener, 10);
FD_SET(listener, master);
fdmax = listener;