我试图围绕网络套接字.到目前为止,我的理解是服务器创建一个绑定到特定端口的新套接字.然后它侦听此套接字以处理客户端请求.
我已经阅读了这个教程http://docs.oracle.com/javase/tutorial/networking/sockets/definition.html,它说
如果一切顺利,服务器将接受连接.接受后,服务器获取绑定到同一本地端口的新套接字,并将其远程端点设置为客户端的地址和端口.它需要一个新的套接字,以便它可以继续监听原始套接字以获得连接请求,同时满足连接客户端的需求.
以下是我不太了解的一些事情
如果一切顺利,服务器将接受连接.
这是否意味着客户端请求成功到达侦听套接字?
接受后,服务器获取绑定到同一本地端口的新套接字,并将其远程端点设置为客户端的地址和端口
新套接字已创建.它也绑定到同一个端口,但它不监听传入的请求.服务器处理完客户端请求后,会将响应写入此套接字,然后关闭.这是对的吗?
这是否意味着请求以某种方式从第一个套接字传递到第二个套接字?
它需要一个新的套接字,以便它可以继续监听原始套接字以获得连接请求,同时满足连接客户端的需求.
因此,创建新套接字然后侦听传入请求.有不同类型的插座吗?某种"听"插座和其他?
为什么服务器必须创建一个新的侦听套接字?为什么不能重复使用前一个呢?
user207421.. 6
不.这意味着传入的连接到达服务器.
不.如果服务器关闭它会关闭.不是这样.
不.这意味着传入连接会导致完全形成连接,并在服务器上创建一个套接字来表示它的服务器端端点.
(a)否.创建一个新的套接字来接收请求并发送响应.(b)是的.有被动和主动插座.被动套接字侦听连接.活动套接字发送和接收数据.
它不必创建新的侦听(被动)套接字.它必须创建一个新的活动套接字作为新连接的端点.
是否为每个请求创建了新套接字?
大多数协议(例如具有保持活动的HTTP)允许每个连接多个请求.
不.这意味着传入的连接到达服务器.
不.如果服务器关闭它会关闭.不是这样.
不.这意味着传入连接会导致完全形成连接,并在服务器上创建一个套接字来表示它的服务器端端点.
(a)否.创建一个新的套接字来接收请求并发送响应.(b)是的.有被动和主动插座.被动套接字侦听连接.活动套接字发送和接收数据.
它不必创建新的侦听(被动)套接字.它必须创建一个新的活动套接字作为新连接的端点.
是否为每个请求创建了新套接字?
大多数协议(例如具有保持活动的HTTP)允许每个连接多个请求.