zoukankan      html  css  js  c++  java
  • Java网络编程从入门到精通(22):实现HTTP模拟器

    ---恢复内容开始---

    http://www.blogjava.net/nokiaguy/archive/2009/02/archive/2009/05/archive/2009/05/archive/2009/05/archive/2009/05/archive/2009/05/archive/2009/nokiaguy/archive/2009/05/archive/2009/06/archive/2009/nokiaguy/archive/2009/06/archive/2009/06/archive/2009/06/09/280837.html

      在讨论HTTP协议的具体请求和响应头字段之前,让我们先来利用以前所学的知识来实现一个HTTP模拟器。所谓HTTP模拟器就是可以在用户输入HTTP的请求消息后,由这个模拟器将HTTP请求发送给相应的服务器,再接收服务器的响应消息。这个HTTP模拟器有几下特点:

    1.  可以手工输入HTTP请求,并向服务器发送。

    2.  接收服务器的响应消息。

    3.  消息头和实体内容分段显示,也就是说,并不是象Telnet等客户端一样将HTTP响

    应消息全部显示,而是先显示消息头,然后由用户决定是否显示实体内容。

    4.  集中发送请求。这个HTTP模拟器和Telnet不同的是,并不是一开始就连接服务器,

    而是将域名、端口以及HTTP请求消息都输完后,才连接服务器,并将这些请求发送给服务器。这样做的可以预防服务器提前关闭网络连接的现象。

        5. 可以循环做上述的操作。

    从以上的描述看,要实现这个HTTP模拟器需要以下五步:

    1.  建立一个大循环,在循环内部是一个请求/响应对。这样就可以向服务器发送多次请求/响应以了。下面的四步都是被包括在循环内部的。

    2.  从控制台读取域名和端口,这个功能可以由readHostAndPort(...)来完成。

    3.  从控制台读取HTTP请求消息,这个功能由readHttpRequest(...)来完成。

    4.  向服务器发送HTTP请求消息,这个功能由sendHttpRequest()来完成。

    5.  读取服务器回送的HTTP响应消息,这个功能由readHttpResponse(...)来完成。

    下面我们就来逐步实现这五步:

    一、建立一个大循环

    在建立这个循环之前,先建立一个中叫HttpSimulator的类,并在这个类中定义一个run方法用来运行这个程序。实现代码如下:

      
     

    ---恢复内容结束---

    二、readHostAndPort(...)方法的实现

        这个方法的主要功能是从控制台读取域名和端口。域名和端口通过":"隔开,":"和域名以及端口之间不能有空格。当从控制台读取一个"q"时,这个函数返回false,表示程序可以退出了,否则返回true,表示输入的域名和端口是正确的。这个方法的实现代码如下:

    重点

  • 相关阅读:
    软件工程最后一次作业
    软件工程第四次作业
    软件工程第三次作业
    软件工程第一次作业
    软件工程第二次作业
    软件工程第一次作业
    2020年最后一次软工作业
    2020年第四次软工作业(第二次结对作业)
    2020年第三次软工作业(第一次结对作业)
    2020年第二次软工作业
  • 原文地址:https://www.cnblogs.com/woshixiaobai/p/4279851.html
Copyright © 2011-2022 走看看