【发布时间】:2019-08-31 10:26:30
【问题描述】:
我正在“编程 TCP 套接字”并且有一些基本问题。
当我为一个 TCP 客户端指定一个 IP 地址和端口时,我知道这个 IP 地址属于一个网络接口而不是整个实际的计算机,并且计算机有多个网络接口,包括向内的本地主机环回接口。
指定给 TCP 客户端的端口是否属于指定的接口?例如,是否可以有两个相同编号的端口但在两个不同的接口上?像接口A的5000端口和接口环回的5000端口?
我问这个,因为我正在尝试创建一个 TCP 客户端,它将通过套接字连接到在 Android 虚拟设备上运行的 TCP 服务器。 TCP客户端运行在机器A上,android模拟器运行在机器B上。
我查看了 Android 模拟器的端口转发,并了解到模拟器在虚拟路由器后面运行,并且我必须配置端口转发,以便 TCP 套接字连接可以从一个端口路由到另一个端口,但这些文档仅有关于如何从环回接口(所谓的本地主机)进行端口转发的说明,所以很明显,如果我尝试创建一个到不是环回接口的接口的套接字,我不会得到我的 TCP套接字转发到模拟器,我的 TCP 连接失败。
所以我想知道环回接口上的端口 5000 在向外的网络接口上是否有表亲端口 5000?
我想知道在某个低级别我是否可以从面向外的接口端口 5000 转发到环回接口端口 5000,然后转发到模拟器所在的端口。
这可能吗?
【问题讨论】: