【发布时间】:2014-01-23 05:18:12
【问题描述】:
我正试图围绕网络套接字。到目前为止,我的理解是服务器创建了一个绑定到特定端口的新套接字。然后它监听这个套接字来处理客户端请求。
我读过这个教程http://docs.oracle.com/javase/tutorial/networking/sockets/definition.html,上面写着
如果一切顺利,服务器接受连接。接受后, 服务器获得一个绑定到同一个本地端口的新套接字,并且还具有 其远程端点设置为客户端的地址和端口。它需要 一个新的套接字,以便它可以继续监听原始套接字 连接请求,同时满足连接客户端的需求。
这里有一些我不太明白的地方
如果一切顺利,服务器接受连接。
- 是否意味着客户端请求成功到达监听套接字?
接受后,服务器会获得一个绑定到同一个本地端口的新套接字,并且 还将其远程端点设置为客户端的地址和端口
新套接字已创建。它也被绑定到同一个端口,但它不监听传入的请求。服务器处理客户端请求后,将响应写入此套接字,然后将其关闭。这是正确的吗?
这是否意味着请求以某种方式从第一个套接字传递到第二个套接字?
它需要一个新的套接字,以便它可以继续收听原来的 用于连接请求的套接字,同时满足连接客户端的需求。
因此,创建了新的套接字,然后侦听传入请求。有不同类型的插座吗?某种“监听”套接字和其他?
为什么服务器必须创建一个新的监听套接字?为什么不能重用之前的?
【问题讨论】:
标签: sockets tcp network-programming