我有这种情况:IP(例如192.168.0.109
)。可以通过相同的IP但通过不同的端口发出一些请求吗?更多,每个端口来自不同的区域。像代理,但对于端口。
所以,我想实现这样的目标:
192.168.0.109:20000
- >巴黎
192.168.0.109:20457
- >里昂
192.168.0.109:21341
- >悉尼
我读了一些关于TCP Proxy的内容,但我不确定这是否正是我想要的。
任何人都可以解释一下,如果这是可以实现的,如果是这样的话,请描述一下整个过程以及为了让这样的事情运行会采取什么步骤?
答案 0 :(得分:2)
默认情况下,每个新的TCP连接将自动从内核的ephemeral ports
池中分配本地IP和随机端口号。在connect
到服务器之前,您可以选择bind(2)
套接字到所需的本地IP和/或端口。您可以bind()
到所需的IP并让内核为您选择端口。
答案 1 :(得分:2)
让客户端创建socket
并使用服务器IP:端口的详细信息调用connect
。在这种情况下,操作系统自动提供本地IP:客户端绑定到的端口。这是默认行为。
如果您愿意,可以让客户端绑定到特定的IP - 在bind
之前调用connect
。您可以将绑定端口设置为0,以便操作系统仍然为您选择随机本地端口。
现在,当您想要建立另一个连接时,只需执行与上面相同的操作即可。不需要更多。
因此,您可以随意创建任意数量的套接字并为它们建立连接。它们将自动来自所选择的“区域”。