我制作了一个服务器/客户端程序,当我在同一网络或同一台机器上连接时,一切正常。然而,这是我的问题:当我从本地网络断开客户机并将其连接到另一个网络(Wifi)时,它不会连接到服务器。
这是我的服务器的一部分:
ZeroMemory(&hints, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
hints.ai_flags = AI_PASSIVE;
res = getaddrinfo(NULL, PORT, &hints, &result);
客户端:
ZeroMemory(&hints, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
res = getaddrinfo(SERVER_HOST, PORT, &hints, &result);
客户端代码中的目标端口与服务器中的目标端口相同。我在某个地方读到我要买一个独特的IP地址?因此,我的问题是:如何使用C(WinSock)中的套接字连接两台不同网络上的计算机?
发布于 2022-03-01 12:09:31
好吧,我想我需要在路由器上转发端口。刚刚联系了我的网络提供商,因为我没有选择制定一个新的“端口转发规则”。我在路由器配置中制定了一个新规则。我使用我在服务器/客户端程序中使用的端口号将私有(内部) ip地址放入新规则中。这是一个很好的资源。
https://stackoverflow.com/questions/71286016
复制相似问题