tcp/ip 和网络的新手。我有一些问题

new to tcp/ip and network. I have some questions

我现在正在学习套接字编程,并使用 C++ 制作了一个简单的 tcp/ip 聊天应用程序。我只能自言自语,因为它只适用于本地主机。现在我想让人们连接到我的设备。看了很多文章,提出了一些问题和想法:

  1. 如果我使用以太网(没有防火墙),我的外部 ip 和内部 ip 是否相同?
  2. 如果我使用以太网(带防火墙),外部 ip 将被防火墙屏蔽,因此它与内部 ip 不同。

  3. 如果我用的是Wifi(我自己的路由器),外网ip和内网ip不一样,内网ip应该是192.168.x.xxx.

  4. 如果我使用的是publicwifi,比如公寓wifi和校园wifi,如何在防火墙上打开一个端口?与 IT 人员交谈?

我还没准备好租一台服务器 atm。我想确保我的聊天应用程序可以在不同的设备上运行。这就是为什么我想让我的朋友连接到我的设备并测试它。

如果我的概念有误,请指正。此外,如果您能向我推荐任何学习 tcp/ip 或网络的好资源,我将不胜感激。

If I am using Ethernet (without firewall), would my external ip and internal ip be the same?

如果您没有使用任何类型的路由器,而只是将一台机器直接连接到传入的互联网连接,也许可以。否则,路由器将不得不为每台机器分配一个不同于路由器外部地址的内部地址。不然怎么区分呢?

If I am using Ethernet (with firewall), the external ip would be masked by firewall and hence it would be different than the internal ip.

与其说是防火墙,不如说是 NAT 设备。当您的有效外部 IP 地址(这些是宝贵的)少于需要访问互联网的设备时,将使用这些地址。这使得必须使用不同的内部和外部地址。

If I am using Wifi (my own router), the external ip would be different than the internal ip, and the internal ip would be like 192.168.x.xxx.

这是一种常用的方法。如果您使用以太网,情况也一样。问题是内部设备多于可用的外部地址。

If I am using public wifi, such as apartment wifi and campus wifi, how can I open a port on the firewall? Talk to the IT staff?

如果他们不支持 UPnP(自动支持),您可能不支持。但理论上,您可以尝试与他们的 IT 人员交谈。