如何在MyEclipse中監聽TCP/IP數據傳輸

jopen 9年前發布 | 93K 次閱讀 MyEclipse Eclipse開發工具

一、什么是 TCP/IP Monitor

TCP/IP monitor 是可以監控在某個端口上通過 TCP/IP 協議傳送的通信數據的一個工具軟件。 TCP/IP monitor 工具,通過一些配置,這個工具可以用簡單明了的形式將客戶端和服務器端之間傳輸的數據呈現給開發者。

二、TCP/IP monitor工作原理

TCP/IP monitor 類似一個代理服務器或者轉發器。其工作原理如下:

如何在MyEclipse中監聽TCP/IP數據傳輸

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。

如何在MyEclipse中監聽TCP/IP數據傳輸

點擊ok即可。

如何在MyEclipse中監聽TCP/IP數據傳輸

2.在 TCP/IP Monitor 中點擊右鍵,選擇 Properties, 點擊 Add 添加一個新的本地代理端口,各設置項的含義如下:

如何在MyEclipse中監聽TCP/IP數據傳輸

如何在MyEclipse中監聽TCP/IP數據傳輸

local monitoring port: 指定本地代理端口,用于監聽服務器端口

Host name: 指定要監聽的主機

Port: 指定要監聽的服務器端口

Type: 指定監聽的協議類型

把它修改為:

如何在MyEclipse中監聽TCP/IP數據傳輸

3.進行設置并保存,選定該本地代理端口并點擊 Start 以打開端口開始監聽。

如何在MyEclipse中監聽TCP/IP數據傳輸

效果:

如何在MyEclipse中監聽TCP/IP數據傳輸

小結:只要進行 Web 開發,有 Client 和 Server 端的 TCP/IP 請求的開發,都可以利用 TCP/IP Monitor 來監控客戶端和服務端交互的內容,從而精確定位問題原因。

四、測試 TCP/IP Monitor

1.新建一個java web工程:

如何在MyEclipse中監聽TCP/IP數據傳輸

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

如何在MyEclipse中監聽TCP/IP數據傳輸

通過輸入名字和選擇相應的選項。

如何在MyEclipse中監聽TCP/IP數據傳輸

然后觀察TCP控制臺這邊,可以獲得以下的信息。

如何在MyEclipse中監聽TCP/IP數據傳輸

同時通過變換HelloWorld.html 中的表單方式get,post會得出的不同的效果。具體請參看以下post和get的區別。

 來源: daliu_it

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!