如何用Java创建一个简单的非持久性服务器?
作为学校作业的一部分,我正在尝试编写一个只处理非持久连接的简单服务器 我正在使用Java 从我到目前为止所读的内容来看,如何用Java创建一个简单的非持久性服务器?,java,sockets,http,Java,Sockets,Http,作为学校作业的一部分,我正在尝试编写一个只处理非持久连接的简单服务器 我正在使用Java 从我到目前为止所读的内容来看,HTTP默认情况下是持久的,而Java中的Sockets/ServerSockets也是这样 如何实现非持久性套接字 这里的非持久性很可能意味着客户端的请求是通过(接受的)套接字提供的,该套接字不会被同一客户端的任何后续请求重复使用。(请看这里:一张漂亮的照片。) 因此,只需让服务器执行以下操作: 创建侦听套接字 将侦听套接字绑定到本地接口的地址:port 让插座听一听 等待在
HTTP
默认情况下是持久的,而Java中的Sockets/ServerSockets也是这样
如何实现
非持久性套接字 这里的非持久性很可能意味着客户端的请求是通过(接受的)套接字提供的,该套接字不会被同一客户端的任何后续请求重复使用。(请看这里:一张漂亮的照片。)
因此,只需让服务器执行以下操作:
创建侦听套接字
将侦听套接字绑定到本地接口的地址:port
让插座听一听
等待在侦听套接字上接受客户端的传入连接
从接受的套接字读取客户端的请求并对其进行解析
创建响应并通过接受的套接字将其发送回客户端李>
最后关闭并关闭先前接受的套接字
4点重新开始
通过persistent
,您的意思是可以在服务器关闭后生存吗?我的意思是,在这种情况下,persistent-我们无法理解您的老师的想法,但他可能希望您编写一个接受连接的服务器,发送回复,然后关闭连接。您的意思是分析所有HTTP头和编码以及HTTP也会产生的任何内容吗?非持久性套接字真是个地狱。在任何情况下,您都需要解析每个传入请求的每个头,而不管它是持久性连接还是非持久性连接。对于持久性连接,我可以使用现有的HTTP服务器。或者,等等,你的意思是我们应该总是从套接字级别开始,永远不要使用现有的HTTP技术吗?持久连接的优点是对accept()
和shutdown()的调用更少。在应用程序协议级别(此处为http)上没有区别。参考上面列出的步骤,您将在6点后重新开始。回到5。。解析请求头和创建响应头是5的一部分。六,。请注意第5点的更新。六,。在我的脑海里。