TCP/UDP套接字中的绑定

TCP/UDP套接字中的绑定,c,sockets,tcp,network-programming,udp,C,Sockets,Tcp,Network Programming,Udp,绑定函数用于将sockaddr结构的名称分配给套接字描述符。为什么TCP服务器需要它,而不是TCP客户端需要它?为什么bot UDP客户端和服务器需要它 我还编写了正确的工作代码,没有在UDP客户端中使用绑定 我不明白为什么bind没有被普遍使用,即在上述所有情况下。如果没有其他方法让计算机知道将数据包发送到哪个程序,那么绑定只是一种必需的。对于无连接程序,这只是接收端 请看一下这篇文章 解释的工作比我能做的要好得多。如果你以后有什么问题。请随意询问:调用connect时客户端隐式绑定到内核提供

绑定函数用于将sockaddr结构的名称分配给套接字描述符。为什么TCP服务器需要它,而不是TCP客户端需要它?为什么bot UDP客户端和服务器需要它

我还编写了正确的工作代码,没有在UDP客户端中使用绑定


我不明白为什么bind没有被普遍使用,即在上述所有情况下。

如果没有其他方法让计算机知道将数据包发送到哪个程序,那么绑定只是一种必需的。对于无连接程序,这只是接收端

请看一下这篇文章

解释的工作比我能做的要好得多。如果你以后有什么问题。请随意询问:

调用connect时客户端隐式绑定到内核提供的临时可用端口。它不需要特别绑定,因为它是连接的发起方。服务器需要显式绑定,因为它需要告诉外部世界客户机如何到达服务器。服务器侦听该端口。客户端知道已发布的端口会启动到该端口的连接

现在,服务器可以向客户端发送数据包,因为在建立连接时,对等详细信息IP和端口变得已知,并且是连接标识符的一部分


以上内容同时适用于TCP和UDP。UDP将没有连接

您发布的链接似乎不正确。获取404AFAIK后,connect隐式绑定未绑定的套接字,从而分配源ip:port以及listen,尽管除非您使用服务发现工具,否则它不是很有用。您可以在连接之前自由绑定。