我有一个 TcpListener 对象,它在防火墙后面的 4000 端口上运行。显然,为了让外部客户端连接到 TcpListener,需要在防火墙中打开端口 4000;否则,外部连接请求将无法通过。
我的问题与我接受这样的连接请求时发生的情况有关:
TcpClient client = server.AcceptTcpClient();
TcpClient 使用系统分配的端口号在本地界面上打开。是否必须在防火墙内打开此端口号才能使外部客户端与此 TcpClient 实例通信?如果是这样,是否可以指定要使用的端口号范围以便提前打开它们?或者防火墙是否自动允许在这个系统分配的端口号上进行通信,因为防火墙后面的东西(我的服务器,在这种情况下)建立了,即接受了连接?