序
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:协议类型
客户端代码如下:
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
注意:这里使用的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,所以它才能捕获数据。