【问题标题】:difference between send() and sendTo() in C for a UDP network implementationUDP 网络实现的 C 语言中 send() 和 sendTo() 之间的区别
【发布时间】:2021-06-07 19:06:11
【问题描述】:

我正在尝试在客户端和服务器之间实现 UDP 网络,但在许多实现中,它们使用 send()sendTo() 我尝试查看手册页,但我并没有真正理解其他的区别与sendTo() 相比,sendTo() 接受更多参数,这使得它与send() 相比显得相当无用。如果您能对此事提出任何澄清,我会很高兴听到:)

【问题讨论】:

  • 来自精美手册:The send() call may be used only when the socket is in a connected state (so that the intended recipient is known).
  • 你可能想要sendto。 “额外参数”使它适用于 UDP 无连接数据报。您仍然使用套接字,但 sendto 会为您绑定到指定的目标、删除消息、然后取消绑定等。简而言之,没有connect 客户端。
  • sendTo() 不存在。你的意思是sendto()

标签: c sockets networking udp


【解决方案1】:

sendto 函数通常用于 UDP 套接字。由于 UDP 是无连接的,此功能允许您指定每个传出数据包发送到的 IP 和端口。

但是,如果您第一次使用 connect,您也可以使用 sendconnect 函数可用于为使用send 发送的所有数据包指定目标IP 和端口。它还将您收到的数据包限制为仅来自该 IP/端口的数据包。可以多次调用connect 函数来更改关联的远程 IP/端口,或删除关联。

一般来说,我建议您使用sendto,因为它可以让您更灵活地选择要发送给谁。

【讨论】:

    猜你喜欢
    • 2017-09-19
    • 2020-02-15
    • 2013-08-05
    • 1970-01-01
    • 2012-10-31
    • 2021-04-10
    • 2018-09-12
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多