在已连接的 UDP 套接字上使用 send()
Using send() on a connected UDP socket
正如我所理解的那样,我们对 TCP 套接字使用 send(),对 UDP 使用 sendto()。
现在,如果我们有一个连接的 UDP 套接字,我们可以使用 send() 发送数据而不指定地址信息。
我的问题是,使用 send() 连接 UDP 套接字会影响底层传输协议吗?
更具体地说,通信语义(可靠的数据传输、面向连接等)是否受我们使用的功能或套接字类型的影响?
As I have understood correctly, we use send() for TCP sockets and sendto() for UDP.
不是真的。对已连接的套接字使用 send
,对未连接的套接字使用 sendto
- 因为使用 send
将从套接字中检索目的地,而使用 sendto
则会明确给出。
由于已建立的 TCP 套接字始终处于连接状态,这隐含地意味着需要在这些套接字上使用 send
而不是 sendto
。 UDP 套接字可以连接或未连接 - 在第一种情况下应使用 send
,在第二种情况下应使用 sendto
。这不会影响使用的协议,即它仍然是不可靠的 UDP。它只影响目的地的来源:从套接字或作为参数给出。
正如我所理解的那样,我们对 TCP 套接字使用 send(),对 UDP 使用 sendto()。
现在,如果我们有一个连接的 UDP 套接字,我们可以使用 send() 发送数据而不指定地址信息。
我的问题是,使用 send() 连接 UDP 套接字会影响底层传输协议吗?
更具体地说,通信语义(可靠的数据传输、面向连接等)是否受我们使用的功能或套接字类型的影响?
As I have understood correctly, we use send() for TCP sockets and sendto() for UDP.
不是真的。对已连接的套接字使用 send
,对未连接的套接字使用 sendto
- 因为使用 send
将从套接字中检索目的地,而使用 sendto
则会明确给出。
由于已建立的 TCP 套接字始终处于连接状态,这隐含地意味着需要在这些套接字上使用 send
而不是 sendto
。 UDP 套接字可以连接或未连接 - 在第一种情况下应使用 send
,在第二种情况下应使用 sendto
。这不会影响使用的协议,即它仍然是不可靠的 UDP。它只影响目的地的来源:从套接字或作为参数给出。