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