在哪些情况下调用bind()是必要的?

时间:2011-09-20 10:12:20

标签: sockets networking network-programming

  

可能重复:
  What client-side situations need bind()?

我看到服务器程序绑定到一个端口。为什么客户端程序不需要这样做? 毕竟客户端程序也将发送和接收数据。

无论如何,在哪些情况下调用bind()是必要的? W-H-Y

3 个答案:

答案 0 :(得分:0)

  

为什么客户端程序不需要这样做?

因为它在连接套接字时会自动发生。通常,您不关心在客户端软件中使用哪个本地出站端口,实际上您唯一需要注意的是netadmin错误地实现了出站端口编号规则,这只会​​导致问题并且无法解决任何问题。

答案 1 :(得分:0)

  1. 无论服务器套接字的套接字系列如何,您都需要执行绑定。

  2. 对于客户端套接字,它取决于。对于 AF_INET 类型的套接字底层堆栈(TCP)执行客户端套接字的绑定。但是对于 AF_UNIX 类型的套接字,客户端需要执行与代码的绑定。因此对于客户端套接字,它取决于套接字族类型。

答案 2 :(得分:0)

对于TCP服务器套接字,您必须指定 IP 端口号:这使客户端能够知道主机的地址(通过IP)以及服务器(通过端口号),

服务器套接字从客户端接受新连接后,它会为该客户端创建一个专用的新套接字,服务器通过这些新套接字区分客户端,这样您就可以创建一个客户端/服务器应用程序,而不将客户端套接字绑定到端口号