gpt4 book ai didi

c - 使用套接字编程时何时使用bind()?

转载 作者:行者123 更新时间:2023-11-30 15:58:03 24 4
gpt4 key购买 nike

我正在编写一个简单的发送器和接收器程序来使用 UDP 进行传输,因此它是无连接的,但我在确定我的接收器程序是否需要调用 bind() 或服务器和/或两者时遇到问题。我的接收器程序(客户端)将处于无限循环中等待从发送器(服务器)接收数据,然后它将打印出数据。我不太确定除了将地址/端口与特定套接字相关联之外,bind() 到底做了什么。为什么我需要调用bind()?

最佳答案

您需要调用bind(2)以便操作系统知道将网络数据包路由到哪个应用程序。当您使用给定协议(protocol)(例如 TCP 或 UDP)的特定端口调用 bind 时,您是在询问“每当您在端口 XXXXX 上看到网络数据包时,请把它给我”。

例如,您的程序的两个副本正在运行,并且它们都想监听同一端口上的 UDP 数据包。如果它们都在同一端口上调用 bind,那么一个会成功,一个会失败,因为操作系统可以仲裁谁绑定(bind)到每个端口。然后,在该端口上收到的任何数据包都将被发送给成功绑定(bind)到该端口的程序实例。

关于c - 使用套接字编程时何时使用bind()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10069020/

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