使用 UDP 发送数据时,需要指定目标端口。
如果通过 TCP 发送,还应指定源端口。
输入和输出是否有不同的端口?例如,如果我指定端口 1234,我可以将它用于输入和输出,还是应该使用不同的端口进行输出和输入?
编辑:为了澄清我的问题: - 我从端口 X 发送数据。 - 有人向我发送数据到端口 X。这两个端口是不同的还是相同的?
使用 UDP 发送数据时,需要指定目标端口。
如果通过 TCP 发送,还应指定源端口。
输入和输出是否有不同的端口?例如,如果我指定端口 1234,我可以将它用于输入和输出,还是应该使用不同的端口进行输出和输入?
编辑:为了澄清我的问题: - 我从端口 X 发送数据。 - 有人向我发送数据到端口 X。这两个端口是不同的还是相同的?
使用 UDP 发送数据时,需要指定目标端口。
正确的。
如果通过 TCP 发送,还应指定源端口。
不正确。如果没有指定,系统会自动为您分配一个。这是正常的用法。
输入和输出是否有不同的端口?
否。您绑定到的本地端口用于两者。
所有这些都适用于 UDP 和 TCP。
源端口是仅存在于发起连接的计算机上的端口,而目标端口仅存在于接收它的计算机上(尽管这两个端口对两个端点都是可见的)。TCP 和 UDP 都有源端口和目标端口。通常源端口是由套接字库从计算机上未使用的端口中自动选择的。选择特定源端口的充分理由很少,作为网络地址转换 (NAT) 过程的一部分,它通常会被 Internet 网关(路由器)更改。
编辑:为了澄清,源端口和目标端口都用于输入和输出。您计算机上的哪个端口取决于您在 TCP 连接的哪一端。如果您在接收端,则目标端口在您的计算机上。当您从您的角度查看连接时,它将是源端口,并将用于输入和输出。同样的原则也适用于 UDP,除了没有“连接”本身,只是端口之间的原始数据交换。
TCP 需要源端口和目标端口,因为它在两个客户端之间形成连接,而 UDP 是无连接的;您只需将数据发送到目标端口,它要么到达,要么不到达。
因此,使用 TCP,您可以在两台计算机之间打开一个“通道”。您通过它发送数据并可能收到一些返回。
使用 UDP,如果您想接收数据,那么是的,您需要一个“单独的”端口来侦听传入数据。