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

时间:2012-09-29 20:42:06

标签: c++ networking client-server chat

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

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

当我访问此网站时:http://whatismyipaddress.com/,我的桌面和笔记本电脑的IP地址是相同的。如何确定唯一的IP?

我问的原因是因为我有兴趣开发一个旨在通过互联网工作的简单C ++服务器 - 客户端聊天应用程序。写这篇文章时,我相信客户端的代码需要有关于服务器的信息(IP地址和端口号)。我想在桌面计算机上运行服务器,并让任何运行客户端代码的计算机能够连接到它。

感谢您的帮助。另外,如果您感兴趣,我正在关注此c ++聊天应用程序教程:http://www.youtube.com/watch?v=-Rk8LPtVpY0

4 个答案:

答案 0 :(得分:6)

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

如果您想让您的桌面可用于网络(就像您放置的“服务器”那样),您将不得不将路由器上的端口转发到桌面。

答案 1 :(得分:2)

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

要确定您的唯一IP地址,您可以执行以下两项操作:

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

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

答案 2 :(得分:2)

由于我们没有足够的IP4 IP来为网络上的每个设备提供唯一的IP,因此存在一种称为伪装的东西。这允许路由器在一个“真实”IP地址下屏蔽本地网络的传出流量。当您的路由器连接到互联网时,此地址将提供给您。

通常,您的本地网络位于为192.168.*.*

等本地网络保留的地址范围内

这当然会使两台机器之间的直接联网,其中一台机器被掩盖有点棘手。您的路由器基本上知道哪个本地计算机是连接的起源,因此它可以将响应直接发送回正确的计算机。

如果您需要对双方都完全透明的连接,则必须为本地计算机创建端口转发 - 以便互联网可以看到它。

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

答案 3 :(得分:1)

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

在维基百科上阅读有关subnetworks的更多信息。

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