您的位置:首页 > 理论基础 > 计算机网络

使用 Eclipse 中的 TCP/IP Monitor

2014-09-02 12:57 495 查看
一句话:设置TCP/IP Monitor 的时候 如果你实际要请求的url是:http://10.30.4.92/dahuazwan/ 那你要先把你的请求发送到自己本地的端口,然后由monitor转发到实际的ip和端口,于是你要请求的url就变成
:http://127.0.0.1:7878/dahuazwan/ 然后 monitor 转发到
http://10.30.4.92/dahuazwan/ 然后 monitor就可以监听到请求到
[u]http://127.0.0.1:7878/dahuazwan/ [/u] 的数据,也可监听到
http://10.30.4.92/dahuazwan/ 响应的数据



TCP/IP Monitor是Eclipse的Debug工具之一,用于捕获Http、TCP/IP协议包。
本节记录如何使用此工具进行监控网路包。
TCP/IP的工作原理可能是这样的:
客户端:监视客户端发送指定服务器的TCP内容

情景:客户端使用HttpClient 4模拟http请求,向http://10.30.4.92/dahuazwan/发送请求,在Tcp/Ip Monitor捕获发送出去的包
Tcp/ipMonitor的配置如下:



Local monitoriing port:Tcp/Ip本地监视端口
Host name:要访问服务器IP
Port:要访问服务器IP
Type:协议类型

客户端代码如下:

Java代码

String url = "http://127.0.0.1:7878/dahuazwan/";
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpost = new HttpPost(url);
StringEntity req_entity = new StringEntity("1234567890");
req_entity.setContentType("text/json;charset=UTF-8");
httpost.setEntity(req_entity);
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine() + entity.getContent());
System.out.println(EntityUtils.toString(entity));

String url = "http://127.0.0.1:7878/dahuazwan/";
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpost = new HttpPost(url);
StringEntity req_entity = new StringEntity("1234567890");
req_entity.setContentType("text/json;charset=UTF-8");
httpost.setEntity(req_entity);
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine() + entity.getContent());
System.out.println(EntityUtils.toString(entity));

注意:这里请求url不是服务器真实的IP和端口,而是Tcp/Ip Monitor所在服务器的IP(这里是本机127.0.0.1)和监视端口7878(即Local monitoriing port)
启动TCP/IP的监视器,发送请求,得到如下结果,发现成功截获请求。



整个TCP/IP工作流程如下:客户端不直接将数据发送服务端,而是将数据先发送到TCP/IP Monitor,然后TCP/IP Monitor再将数据发送的服务端;服务端处理完数据后,再将数据返回给TCP/IP Monitor,TCIP/IP再将处理后的数据转给客户端。因为发送数据和接收数据都经过TCP/IP Monitor,所以它才能捕获数据。

服务端:监视发送到服务端到数据

服务器在运行,希望截获浏览器访问服务器的包。
如捕获访问URL="http://10.36.24.5:8999/TestPro/MyServlet"的包。

Tcp/ipMonitor的配置如下:



Local monitoriing port:Tcp/Ip本地监视端口
Host name:要访问服务器IP
Port:要访问服务器IP
Type:协议类型

启动监视器,在浏览器中输入以下URL:

http://127.0.0.1:7878/TestPro/MyServlet
http://127.0.0.1:7878/TestPro/MyServlet


注意:这里使用的IP和端口都是Tcp/Ip Monitor所在服务器的IP(这里是本机127.0.0.1)和监视端口7878(即Local monitoriing port)

启动监视器,访问服务器URL,可以捕获截获的包,捕获的图和第一部分相似,不再上图。

整个TCP/IP工作流程如下:工作流程和上面"监视客户端发送指定服务器的TCP内容"相似,浏览器不直接访问服务端,而是将数据先发送到TCP/IP Monitor,然后TCP/IP Monitor再将数据发送的服务端;服务端处理完数据后,再将数据返回给TCP/IP Monitor,TCIP/IP再将处理后的数据转给客户端。因为发送数据和接收数据都经过TCP/IP Monitor,所以它才能捕获数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: