gpt4 book ai didi

sockets - TCP 套接字和已连接的 UDP 套接字之间的区别

转载 作者:可可西里 更新时间:2023-11-01 02:30:35 25 4
gpt4 key购买 nike

默认 UDP 套接字加上 Connect() 调用是一个已连接的 UDP 套接字。我知道与 TCP 和 UDP 相关的差异,但在这里我想知道只是 sockets

的差异

最佳答案

当使用 TCP 套接字时,tcp 堆栈负责将数据发送到网络并传递给接收方,重新传输数据直到接收方确认。 TCP 还负责流量控制,即以适合网络连接和接收方的速率传输数据。最后,TCP 确保接收方以正确的顺序准确地获取数据一次。

使用 UDP,程序员可以直接管理到网络的传输,并且必须处理丢失和乱序的数据包以及流量控制和将数据分段到可以通过网络连接传输的数据包。

最后,由于 udp 和 tcp 是不同的协议(protocol),如果服务器在防火墙后面,它们需要在防火墙中进行不同的设置以允许通过到服务器。此外,您不能将数据从已连接(或未连接)的 UDP 套接字发送到 TCP 套接字,反之亦然。

连接 UDP 套接字仅意味着可以使用 send() 和 recv() 向连接的地址发送数据或从连接的地址发送数据,但发送和接收的仍然是 UDP 数据,因此上述所有差异均适用。如果您仅使用该套接字进行点对点通信,那么您会在 UDP 套接字上调用 connect()。

关于sockets - TCP 套接字和已连接的 UDP 套接字之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com