1

使用 UDP 发送数据时,需要指定目标端口。

如果通过 TCP 发送,还应指定源端口。

输入和输出是否有不同的端口?例如,如果我指定端口 1234,我可以将它用于输入和输出,还是应该使用不同的端口进行输出和输入?

编辑:为了澄清我的问题: - 我从端口 X 发送数据。 - 有人向我发送数据到端口 X。这两个端口是不同的还是相同的?

4

3 回答 3

2

使用 UDP 发送数据时,需要指定目标端口。

正确的。

如果通过 TCP 发送,还应指定源端口。

不正确。如果没有指定,系统会自动为您分配一个。这是正常的用法。

输入和输出是否有不同的端口?

否。您绑定到的本地端口用于两者。

所有这些都适用于 UDP 和 TCP。

于 2010-10-29T00:22:40.940 回答
1

源端口是仅存在于发起连接的计算机上的端口,而目标端口仅存在于接收它的计算机上(尽管这两个端口对两个端点都是可见的)。TCP 和 UDP 都有源端口和目标端口。通常源端口是由套接字库从计算机上未使用的端口中自动选择的。选择特定源端口的充分理由很少,作为网络地址转换 (NAT) 过程的一部分,它通常会被 Internet 网关(路由器)更改。

编辑:为了澄清,源端口和目标端口都用于输入和输出。您计算机上的哪个端口取决于您在 TCP 连接的哪一端。如果您在接收端,则目标端口在您的计算机上。当您从您的角度查看连接时,它将是源端口,并将用于输入和输出。同样的原则也适用于 UDP,除了没有“连接”本身,只是端口之间的原始数据交换。

于 2010-10-27T13:12:19.680 回答
-1

TCP 需要源端口和目标端口,因为它在两个客户端之间形成连接,而 UDP 是无连接的;您只需将数据发送到目标端口,它要么到达,要么不到达。

因此,使用 TCP,您可以在两台计算机之间打开一个“通道”。您通过它发送数据并可能收到一些返回。

使用 UDP,如果您想接收数据,那么是的,您需要一个“单独的”端口来侦听传入数据。

于 2010-10-27T13:17:09.770 回答