当我在阅读如何在 C 中建立 TCP 客户端/服务器连接时,我对 bind() 函数有疑问。
我读到您需要此函数将您创建的套接字“绑定”到本地 IPEndPoint,因为客户端/服务器连接需要一个套接字对,由LocalIP:LocalPort, RemoteIP:RemotePort 创建。因此我的问题是:
当客户端不调用 bind() 而是在创建套接字后立即调用 connect() 时会发生什么以及内核会做什么(这是常见的事情;我也在客户端程序中这样做,但我没有明白为什么我不需要绑定)?
……最重要的是……
为什么服务器程序调用 bind(),将 INADDR_ANY 指定为 LocalIP 地址?我读到这个常量对于指定一个通用 IP 地址很有用,即服务器接受来自 Internet 上任何地方的数据。但是...这是本地 IP 地址的规范,还是表明客户端可以到达服务器的位置?我变得非常困惑...