一、什么是 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 源码:

 <html>
<head>
</head>
<body style="font-size:24px">
<form action="hello" method="get">
Name:<input name="name"><br>
Contact Me:<Br>
QQ<input type="checkbox" name="contact"
value="qq"/>
Tel<input type="checkbox" name="contact"
value="tel"/>
WeChat<input type="checkbox" name="contact"
value="wechat"/>
<br>
<input type="submit" value="OK">
</form>
</body>
</html>

HelloWorld源码:

 package web;

 import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorld extends HttpServlet {
/**
* 获取请求中的name、contact两组参数值
* 分别使用getParameter和getParameterValues方法获取
*/
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
//获取提交的name的值
String name = req.getParameter("name");
out.println("Hello," + name);
//获取提交的contact的值
String[] contacts = req.getParameterValues("contact");
if(contacts!=null){
out.print("Contact Information:");
for(String info :contacts){
out.print(info+",");
}
}
out.close();
}
}

xml源码:

 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>web.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

最后部署项目到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. 如何在Apache中建立一个新端口

    环境: Windows server 2008 R2, Apache, PHP5 步骤: 建立一个目录,里面放置一个index.php. 打开Apache\conf\httpd.conf 文件,做如下 ...

  2. 如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法

    最近学习了下如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法,虽然MyEclipse中自带了连接数据库的方法,我也尝试了下其他方法,如有不当之处请指 ...

  3. 如何在JAVA中实现一个固定最大size的hashMap

    如何在JAVA中实现一个固定最大size的hashMap 利用LinkedHashMap的removeEldestEntry方法,重载此方法使得这个map可以增长到最大size,之后每插入一条新的记录 ...

  4. 如何在idea中引入一个新maven项目

    如何在idea中引入一个新的maven项目,请参见如下操作:      

  5. 【Tomcat-原】如何在Myeclipse中添加本地的Tomcat

    2014-10-27 16-24-09  liulin 说明: Myeclipse中自带Tomcat,如果不想用Myeclipse自带的Tomcat,可以使用本地的Tomcat, 下面将介绍如何在My ...

  6. 如何在html中把一个图片或者表格覆盖在一张已有图片上的任意位置

    如何在html中把一个图片或者表格覆盖在一张已有图片上的任意位置   <div style="position:relative;"> <img src=&quo ...

  7. (转)如何在Linux中统计一个进程的线程数

    如何在Linux中统计一个进程的线程数 原文:http://os.51cto.com/art/201509/491728.htm 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会 ...

  8. 在Myeclipse中拷贝一个web项目,但是tomcat文件夹中没有更新,需要进行修改才能更新。

    1.在Myeclipse中拷贝一个web项目,但是tocat文件夹中没有更新,需要进行修改才能更新. 2.方法:右键这个工程,然后Properties->MyEclipse->Projec ...

  9. Kubernetes入门(四)——如何在Kubernetes中部署一个可对外服务的Tensorflow机器学习模型

    机器学习模型常用Docker部署,而如何对Docker部署的模型进行管理呢?工业界的解决方案是使用Kubernetes来管理.编排容器.Kubernetes的理论知识不是本文讨论的重点,这里不再赘述, ...

随机推荐

  1. NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享

    原文地址: http://my.oschina.net/u/1791256/blog/283064 TOMCAT7.0+ NGINX + MEMCACHED + memcached-session-m ...

  2. 解决ElasticSearch5.x中@Field注解之IK分词不能用的问题

    一.概述 环境:ElasticSearch版本5.6.3,SpringBoot 2.0.2.RELEASE,索引myIndex 问题描述:使用@Field注解给实体类指定ik分词解析器(ik_smar ...

  3. MSI failed, 不能卸载VMware

    解决方法; http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&ext ...

  4. Canvas控件最后一蛋——CanvasGroup

    Canvas Group可以用来控制一组不需要个别控制的UI元素的某些方面,CanvasGroup的属性会影响他所有children的GameObject 其中有四个选项: -Alpha:这个选项很多 ...

  5. jsp中简易版本的图片上传程序

    1.下载相应的组件的最新版本 Commons FileUpload 可以在http://jakarta.apache.org/commons/fileupload/下载 附加的Commons IO   ...

  6. java利用poi包 为excel生成超链接

    转载自:http://www.blogjava.net/leekiang/archive/2008/10/21/235794.html   1,一个需求, 要求报表生成的Excel表格支持超链接.例如 ...

  7. 对只转发结果集的无效操作:last

    调用时候发生这样一个错误: SQLException: 对只转发结果集的无效操作:last 原因是按照缺省方式打开的ResultSet不支持结果集cursor的回滚 如果想要完成上述操作,要在生成St ...

  8. C# 开发者代码审查清单

    这是为C#开发者准备的通用性代码审查清单,可以当做开发过程中的参考.这是为了确保在编码过程中,大部分通用编码指导原则都能注意到.对于新手和缺乏经验(0到3年工作经验)的开发者,参考这份清单编码会很帮助 ...

  9. vue路由使用踩坑点:当动态路由再使用路由name去匹配跳转时总是跳转到根路由的问题

    闲话少说,直接问题: 之前我的路由时这么写的 { path:'/serverInfo/:id', name:'serverInfo', component:() => import('@/vie ...

  10. android 百度地图demo 随感

    最近项目组的老大要我对百度的android的sdk进行一段的预研,由于技术太菜,出了不少的错误,因此有一点感悟了. 嗨,这个错误浪费了我一天的时间的时候,我按照百度的技术文档一步步的来做,每部基本上都 ...