如何在MyEclipse中監聽TCP/IP數據傳輸
一、什么是 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(); }
}</pre>
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