可能重复:
What client-side situations need bind()?在哪些情况下调用bind()是必要的?
我看到服务器程序绑定到一个端口。为什么这不是客户端程序所必需的? 毕竟客户端程序也会发送和接收数据。
无论如何,在哪种情况下调用bind()是必要的?而W-H-Y?
可能重复:
What client-side situations need bind()?在哪些情况下调用bind()是必要的?
我看到服务器程序绑定到一个端口。为什么这不是客户端程序所必需的? 毕竟客户端程序也会发送和接收数据。
无论如何,在哪种情况下调用bind()是必要的?而W-H-Y?
为什么客户端程序这不是必需的?
因为它在连接套接字时自动发生。通常,您不关心您在客户端软件中使用的本地出站端口,事实上,您唯一需要关心的是您的netadmin错误地实施了出站端口编号规则,这只会导致问题,并不能解决任何问题。
您需要为服务器套接字进行绑定,无论插座家庭。
对于客户端套接字,它取决于。对于AF_INET底层堆栈(TCP)的套接字类型为客户端套接字执行绑定。但是对于AF_UNIX套接字类型的客户端需要使用代码执行绑定。所以对于客户端套接字,它取决于套接字家族类型。
对于TCP服务器套接字,必须指定IP和端口号:这可以使客户端知道主机(通过IP)地址和服务器的过程(通过端口号) ,
服务器套接字后接受来自客户端的客户端之间通过这些新的套接字一个新的连接它会创建一个新的套接字致力于为客户端和服务器分开来,所以你可以创建一个客户机/服务器应用程序,而不将客户端套接字绑定到端口号
其实你不需要做(1)。如果你只是调用listen(),就会有一个带零端口号的自动bind(),它给你一个系统分配的端口。 – EJP