C++ 具有相同IP地址的两台计算机-使用套接字的聊天应用程序

C++ 具有相同IP地址的两台计算机-使用套接字的聊天应用程序,c++,networking,client-server,chat,C++,Networking,Client Server,Chat,在家里,我有调制解调器、路由器、台式机和笔记本电脑 我的调制解调器已连接到路由器。桌面通过电线连接到我的路由器。笔记本电脑通过无线方式连接到家庭网络/路由器 当我访问以下网站时,我的台式机和笔记本电脑的IP地址是相同的。如何确定唯一的IP 我之所以问这个问题,是因为我对开发一个简单的C++服务器聊天应用程序感兴趣,它希望在Internet上工作。在编写本文时,我相信客户机代码将需要关于服务器IP地址和端口的信息。我想在台式机上运行服务器,让任何运行客户端代码的机器都能够连接到它 谢谢你的帮助。另

在家里,我有调制解调器、路由器、台式机和笔记本电脑

我的调制解调器已连接到路由器。桌面通过电线连接到我的路由器。笔记本电脑通过无线方式连接到家庭网络/路由器

当我访问以下网站时,我的台式机和笔记本电脑的IP地址是相同的。如何确定唯一的IP

我之所以问这个问题,是因为我对开发一个简单的C++服务器聊天应用程序感兴趣,它希望在Internet上工作。在编写本文时,我相信客户机代码将需要关于服务器IP地址和端口的信息。我想在台式机上运行服务器,让任何运行客户端代码的机器都能够连接到它


谢谢你的帮助。另外,如果你感兴趣,我会遵循这个C++聊天应用教程来做这件事:

这是因为iPad AdvRES.com正在获取你的外部地址。你的路由器正在隐藏你的内部地址。如果要获取内部ip地址,必须在计算机上查找ip地址(如果是windows),然后转到网络和共享中心,单击局域网连接,然后单击详细信息


如果您想让您的桌面作为服务器在web上可用,您必须将路由器上的端口转发到桌面。

这是因为whatismyipaddress.com只是获取您的外部地址。你的路由器正在隐藏你的内部地址。如果要获取内部ip地址,必须在计算机上查找ip地址(如果是windows),然后转到网络和共享中心,单击局域网连接,然后单击详细信息


如果您想让您的桌面作为服务器在web上可用,您必须将路由器上的端口转发到桌面。

网站正在报告调制解调器的IP地址。这是互联网上其他人看到你的地址。与从路由器获得的192.168.x.x地址相反,该地址仅对内部网络有用,任何连接到路由器的设备都不可用

要确定您的唯一IP地址,您可以做两件事:

登录路由器并查找状态选项卡,该选项卡通常报告所有连接的设备


或者更容易,如果您在Windows上运行cmd并键入ipconfig/all

网站正在报告调制解调器的IP地址。这是互联网上其他人看到你的地址。与从路由器获得的192.168.x.x地址相反,该地址仅对内部网络有用,任何连接到路由器的设备都不可用

要确定您的唯一IP地址,您可以做两件事:

登录路由器并查找状态选项卡,该选项卡通常报告所有连接的设备


或者更容易,如果您在Windows上运行cmd并键入ipconfig/all

由于我们没有足够的IP4 IP使网络上的每个设备都有一个唯一的IP,所以有一种叫做伪装的方法。这允许路由器在一个真实IP地址下屏蔽本地网络的传出流量。此地址在路由器连接到internet时提供给您

通常,您的本地网络位于为本地网络保留的地址范围内,如192.168.**

这当然会使两台机器之间的直接联网变得有点棘手,其中一台被屏蔽。您的路由器基本上知道哪些本地机器是连接的来源,因此它可以将响应引导回正确的机器

如果您需要一个对双方都完全透明的连接,那么您必须创建到本地机器的端口转发,以便它在internet上可见


一些网站可以向您显示您的外部ip,但最简单的方法是登录路由器并查看那里。

由于我们没有足够的IP4 ip来让网络上的每个设备都具有唯一的ip,因此有一种称为伪装的方法。这允许路由器在一个真实IP地址下屏蔽本地网络的传出流量。此地址在路由器连接到internet时提供给您

通常,您的本地网络位于为本地网络保留的地址范围内,如192.168.**

这当然会使两台机器之间的直接联网变得有点棘手,其中一台被屏蔽。您的路由器基本上知道哪些本地机器是连接的来源,因此它可以将响应引导回正确的机器

如果您需要一个对双方都完全透明的连接,那么您必须创建到本地机器的端口转发,以便它在internet上可见


一些网站可以显示您的外部ip,但最简单的方法是登录路由器并查看那里。

从家庭网络外部看到的每个设备的ip地址都是相同的。这是路由器的工作之一,将特定的开发人员抽象出来 ice负责哪个数据包,这个概念有助于使互联网具有可扩展性

阅读更多关于维基百科的信息

在编写应用程序之前学习网络基础也是一个好主意。退房


从家庭网络外部看到的每个设备的ip地址都是相同的。这是路由器的工作之一,它提取出哪个特定设备负责哪个数据包,这个概念有助于使互联网具有可扩展性

阅读更多关于维基百科的信息

在编写应用程序之前学习网络基础也是一个好主意。退房


谢谢你提供的信息。因此,似乎我唯一需要指定的是我唯一的主IP地址和客户端代码中的端口,以便客户端可执行文件知道连接到哪里。假设client.exe在我网络之外的计算机上运行。它如何知道server.exe是在我的台式机上运行的,而不是在笔记本电脑上运行的?还有,我还需要做其他的步骤吗?在“我的路由器设置”页面中指定端口号时,我应该选择TCP还是UDP?谢谢您提供此信息。因此,似乎我唯一需要指定的是我唯一的主IP地址和客户端代码中的端口,以便客户端可执行文件知道连接到哪里。假设client.exe在我网络之外的计算机上运行。它如何知道server.exe是在我的台式机上运行的,而不是在笔记本电脑上运行的?还有,我还需要做其他的步骤吗?在“我的路由器设置”页面中指定端口号时,我应该选择TCP还是UDP?谢谢您提供此信息。因此,似乎我唯一需要指定的是我唯一的主IP地址和客户端代码中的端口,以便客户端可执行文件知道连接到哪里。假设client.exe在我网络之外的计算机上运行。它如何知道server.exe在我的台式机和笔记本电脑上运行?还有,我还需要做其他的步骤吗?在“我的路由器设置”页面中指定端口号时,我应该选择TCP还是UDP?谢谢您提供此信息。因此,似乎我唯一需要指定的是我唯一的主IP地址和客户端代码中的端口,以便客户端可执行文件知道连接到哪里。假设client.exe在我网络之外的计算机上运行。它如何知道server.exe在我的台式机和笔记本电脑上运行?还有,我还需要做其他的步骤吗?在我的路由器设置页面中指定端口号时,我应该选择TCP还是UDP?