我在复习我的 sockte 编程知识时遇到了一个疑问。
首先让我解释一下我对套接字的理解。
- 套接字绑定将套接字与端口相关联。
- 套接字绑定帮助内核识别它应该转发传入数据包的进程。
在面向连接的通信套接字建立如下
- 在服务器端socket()-->bind()-->listen()-->accept().....
- 客户端是socket()-->connect-->......
我的问题是为什么客户端不需要绑定到套接字。在客户端情况下,如果它发送一个请求,它必须得到对其套接字的响应,内核必须将其转发给它的进程。这些事情的发生不需要绑定吗?如果不需要,内核将如何理解将响应发送给谁包?同样在连接较少的客户端调用绑定套接字。为什么这里需要它?