Source Port 和 StunServerPort 有什么区别

What is the difference between the Source Port and the StunServerPort

我正在开发点对点呼叫。我正在使用 de.javawi.jstun.test 。 我在 de.javawi.jstun.test.DiscoveryTest 中找到了这个构造函数。

public DiscoveryTest(InetAddress sourceIaddress, int sourcePort, String stunServer, int stunServerPort) {
    this.sourceIaddress = sourceIaddress;
    this.sourcePort = sourcePort;
    this.stunServer = stunServer;
    this.stunServerPort = stunServerPort;
}

我的问题是源端口和 StunServerPort 有什么区别??

stunServerPort 是 STUN 服务器侦听传入绑定请求的端口。这通常是标准 STUN 端口之一:34783479.

sourcePort 是 NAT 后面的客户端在本地获得的用于创建套接字的端口。大多数情况下,尝试进行 P2P 的客户端会要求 OS 随机选择一个可用的本地端口 send/receive。您可以为 sourcePort 传递 0 并让它也为您选择端口。或者,如果您已经有套接字,请使用与本地相同的端口,DiscoveryTest 将设置 reuseaddr 标志,以便套接字共存。