一、端口映射(端口重定向):
内网主机端口————》外网主机端口。
访问外网端口————》内网主机端口。
路由器上设置一个端口映射。
外部端口和内部端口一 一对应
二、端口转发:
端口转发,有时被叫做隧道:
ip地址和路由器的端口绑定
外部端口和内部IP一 一对应
三、端口复用:
两个程序,监听相同的端口。
端口复用技术中最重要的一个函数是setsockopt()
setsockopt() 函数,用于任意类型、任意状态套接口的设置选项值。
设置socket的SO_REUSEADDR选项,即可实现端口复用
SO_REUSEADDR:套接字绑定多个端口,端口绑定多个套接字
1、多个套接字绑定1个端口
但每个实例绑定的IP地址是不能相同的。(例如路由器)
import socket
tcp1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#在绑定前调用setsockopt让套接字允许地址重用
tcp1.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
tcp2.setsockopt(socket.SOL_SOCKET,