一、什么是 TCP/IP Monitor

TCP/IP monitor 是可以监控在某个端口上通过 TCP/IP 协议传送的通信数据的一个工具软件。 TCP/IP monitor 工具,通过一些配置,这个工具可以用简单明了的形式将客户端和服务器端之间传输的数据呈现给开发者。

二、TCP/IP monitor工作原理

TCP/IP monitor 类似一个代理服务器或者转发器。其工作原理如下:

1.客户端向"本地监听端口"发起请求,TCP/IP Monitor 获取客户端发送的数据,并显示该数据。

2.TCP/IP Monitor 将在 1 步骤得到的数据转发给"服务器端口", 服务器端接收数据。

3.TCP/IP Monitor 从接收服务器端返回的数据 , 并显示该数据。

4.TCP/IP Monitor 将在 3 步骤得到的数据返回客户端,客户端接收到数据。

三、打开TCP/IP Monitor步骤

打开 TCP/IP Monitor,创建一个本地代理端口监听服务器 Http 端口就行了。具体步骤如下:

1.打开 WebSphere Commerce 开发环境 , 选择 Windows->Show View->TCP/IP Monitor。

点击ok即可。

2.在 TCP/IP Monitor 中点击右键,选择 Properties, 点击 Add 添加一个新的本地代理端口,各设置项的含义如下:

local monitoring port: 指定本地代理端口,用于监听服务器端口

Host name: 指定要监听的主机

Port: 指定要监听的服务器端口

Type: 指定监听的协议类型

把它修改为:

3.进行设置并保存,选定该本地代理端口并点击 Start 以打开端口开始监听。

效果:

小结:只要进行 Web 开发,有 Client 和 Server 端的 TCP/IP 请求的开发,都可以利用 TCP/IP Monitor 来监控客户端和服务端交互的内容,从而精确定位问题原因。

五、测试 TCP/IP Monitor

1.新建一个java web工程:

HelloWorld.html 源码:

 1 <html>
 2   <head>
 3   </head>
 4   <body style="font-size:24px">
 5     <form action="hello" method="get">
 6         Name:<input name="name"><br>
 7         Contact Me:<Br>
 8         QQ<input type="checkbox" name="contact"
 9            value="qq"/>
10         Tel<input type="checkbox" name="contact"
11            value="tel"/>
12         WeChat<input type="checkbox" name="contact"
13            value="wechat"/>
14         <br>
15         <input type="submit" value="OK">
16     </form>
17   </body>
18 </html>

View Code

HelloWorld源码:

 1 package web;
 2
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 public class HelloWorld extends HttpServlet {
10     /**
11      * 获取请求中的name、contact两组参数值
12      * 分别使用getParameter和getParameterValues方法获取
13      */
14     protected void service(HttpServletRequest req, HttpServletResponse resp)
15             throws ServletException, IOException {
16         PrintWriter out = resp.getWriter();
17         //获取提交的name的值
18         String name = req.getParameter("name");
19         out.println("Hello," + name);
20         //获取提交的contact的值
21         String[] contacts = req.getParameterValues("contact");
22         if(contacts!=null){
23             out.print("Contact Information:");
24             for(String info :contacts){
25                 out.print(info+",");
26             }
27         }
28         out.close();
29     }
30 }

View Code

xml源码:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 7   <servlet>
 8       <servlet-name>HelloWorld</servlet-name>
 9       <servlet-class>web.HelloWorld</servlet-class>
10   </servlet>
11   <servlet-mapping>
12       <servlet-name>HelloWorld</servlet-name>
13       <url-pattern>/hello</url-pattern>
14   </servlet-mapping>
15 </web-app>

View Code

最后部署项目到Tomcat,在浏览器中输入访问地址:

http://localhost:8888/TCP/HelloWorld.html

通过输入名字和选择相应的选项。

然后观察TCP控制台这边,可以获得以下的信息。

同时通过变换HelloWorld.html 中的表单方式get,post会得出的不同的效果。具体请参看以下post和get的区别。

原文作者:daliu_it
博文出处:http://www.cnblogs.com/liuhongfeng/p/4187572.html

本文版权归作者和博客园共有,但未经作者同意转载必须保留以上的声明且在放在文章页面明显位置。谢谢合作。

如何在MyEclipse中建立一个代理服务器相关推荐

  1. lin通信ldf文件解析_详细步骤讲解如何在CANoe中创建一个LIN通讯工程(多图+详解)...

    本文首发自微信公众号"汽车技术馆"! CANoe可以实现基于CAN通讯的通讯测试和仿真,同时也可以支持基于LIN通讯的通讯测试和仿真,如何在CANoe中建立一个基于LIN通讯的工程 ...

  2. 如何在计算机磁盘建文件,如何在win7电脑中建立一个隐藏的磁盘分区?

    自己的电脑.自己的磁盘,自然也就有一些自己的东西,这些东西往往是不希望被别人看到的,不管是私人的还是工作的,都是如此,那么大家是否有想到好的办法可以让这些文件资料隐身起来呢?下面,小编就来说说自己的经 ...

  3. 如何在idea中创建一个SpringBoot项目(超详细教学)

    如何在idea中创建一个SpringBoot项目 目录 环境准备 1.1打开IDEA,点击New新建一个项目 1.2 使用Spring Initializr方式构建Spring Boot项目 1.3 ...

  4. 如何在MyEclipse中显示行数

    转载自  如何在MyEclipse中显示行数 如何在MyEclipse中显示行数呢?myeclipse在默认情况下不显示行数时,用户可以自己设置显示行数,行数可以帮助我们方便的查看代码. 首先,打开w ...

  5. 如何在Python中建立和训练K最近邻和K-Means集群ML模型

    One of machine learning's most popular applications is in solving classification problems. 机器学习最流行的应 ...

  6. django 传递中文_如何在Django中建立消息传递状态

    django 传递中文 by Ogundipe Samuel 由Ogundipe Samuel 如何在Django中建立消息传递状态 (How to Build a Message Delivery ...

  7. 如何在Joomla中创建一个漂亮的单页网站

    我们都知道一个好的网站对于建立企业信誉的重要性.但是,在拥有统一的单页网站和多页网站的选项之间进行选择可能会很棘手.特别是如果您是 Joomla 和 Web 开发的新手. 随着移动和社交媒体用户的增加 ...

  8. python中如何画logistic_如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

    原标题:如何在 Python 中建立和训练线性和 logistic 回归 ML 模型? 英语原文: 翻译:(Key.君思) 线性回归与logistic回归,是. 在我的里,你们已经学习了线性回归机器学 ...

  9. 如何在CCS中建立自己的工程

    如何在CCS中建立自己的工程 相信有很多人用了好久的CCS了,却不会建立自己的工程文件,大家要不就是在TI的例程里改,要不就是弄的工程文件路径很复杂,而且有时还会有致命的缺点--不能换路径,也就是说放 ...

最新文章

  1. python123 https://github.com/jackfrued/Python-100-Days/tree/master/Day01-15
  2. 区块链入门之基础知识
  3. ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果...
  4. photoshop CS不能打字,出现死机等现象的解决办法!!
  5. NSString/NSMutable字符串——韩俊强…
  6. sysfs: cannot create duplicate filename '/class/spi_master/spi1'
  7. linux双系统重装win7系统下载,Windows与Ubuntu双系统重装WIN7后修复Grub2
  8. aspen怎么做灵敏度分析_数据分析终极难题:数据分析怎么做才能驱动业务?
  9. [Postgres]Postgres复制表
  10. 顺着 IT 的潮流,C语言再次迎来了春天!学好了C语言能做什么?
  11. 是逻辑运算符 java_跟我学java编程—Java逻辑运算符
  12. latex 图片和标题一起旋转
  13. 微信小程序社区论坛源码
  14. React通用解决方案——浮层容器
  15. 英语四六级网站服务器繁忙,英语四六级成绩公布这些问题很常见
  16. wincap4.11在vc6下编译出现_W64错误
  17. matlab plot bo,Matlab的plot~各种颜色和线形
  18. 基于python的明日方舟自动刷取理智的脚本(一)—— 初始化环境
  19. EndNote20 快捷键
  20. JSD-2204-JDBC-SpringBoot-Day11

热门文章

  1. 7-6 动物 (15 分)
  2. 蓝桥杯基础练习之杨辉三角
  3. 物联网智能家居项目---智能卧室
  4. vivado中如何读取十进制小数_二进制十进制间小数怎么转换,原来是这样的
  5. oracle中的mount,Oracle环境中使用NFS的mount选项
  6. Windows Mobile下使用Native C++开发日志类
  7. How do I UPDATE from a SELECT in SQL Server?
  8. C++学习笔记56:异常处理
  9. 解读webpack的bundle.js
  10. 前端开发面试题总结-代码篇