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