gpt4 book ai didi

sockets - 通过共享公共(public) IP 地址的客户端服务器?

转载 作者:可可西里 更新时间:2023-11-01 02:43:44 26 4
gpt4 key购买 nike

我正在编写自己的聊天应用程序,它使用基于 TCP 的服务器客户端模型。仅供自己学习。

当我通过本地网络连接时,没有任何障碍。这是我的理解,因为其他本地 IP 是直接可用的。示例:192.168.1.28 连接到服务器 192.168.1.90

然后我尝试移动是通过互联网连接。

我已经将我的路由器设置为通过端口 4296 端口转发 tcp 连接到我在 192.168.1.90 上的服务器。

然后我查找路由器的公共(public) IP 地址。它显示 101.1.1.20

然后我通过另一个连接在另一个 friend 的 PC 上设置我的客户端。并通过将Client连接到IP:101.1.1.20在端口4296上执行

失败了....

经过进一步调查,我的路由器的公共(public) IP 似乎是一个共享公共(public) IP。我想这意味着在我的路由器之上还有另一层

关于在这方面进一步发展的任何提示?我很难过。

最佳答案

你可以尝试类似 http://www.whatismyip.com/ 的东西,它可以告诉您当您连接到其他人时他们看到的公共(public) IP 地址。

这可能不足以让您从外部连接(因为可能配置了某些东西来阻止所有传入连接),但它至少可以让您看到您的路由器的 IP 是否与您的路由器的 IP 相同外面的世界看到了你。

您可能还想尝试交换端口上的字节顺序,因为这是人们经常在他们的客户端和/或服务器程序中出错的地方,如果您在本地端口上都弄错了,它会在那里工作但如果您将端口配置为匹配,则不会通过您的路由器(因此,由于 4296 == 0x10c8,当您的路由器配置为 4296 时,也请尝试检查端口 0xc810 == 51216)。

同样值得尝试使用 telnet 而不是您自己的客户端连接,只是为了查看连接是否成功,因为可能出错的事情更少。此外,使用 wireshark(或 tcpdump)之类的工具可以告诉您在尝试此操作时是否有任何 SYN 数据包到达您的服务器端。

关于sockets - 通过共享公共(public) IP 地址的客户端服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22500285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com