我正在嘗試編寫一個程序,該程序將「偵聽」通過TCP/IP在端口上運行的應用程序。套接字和端口混淆
當我將瀏覽器指向localhost:30003時,我從應用程序的輸出流打印到屏幕上。這似乎是瀏覽器成功「監聽」端口。
發生了什麼事嗎?我的瀏覽器是在輪詢應用程序還是應用程序推送瀏覽器提取的tcp數據?
我不確定是否獲取這些數據我需要創建一個客戶端或服務器實例。
我正在嘗試編寫一個程序,該程序將「偵聽」通過TCP/IP在端口上運行的應用程序。套接字和端口混淆
當我將瀏覽器指向localhost:30003時,我從應用程序的輸出流打印到屏幕上。這似乎是瀏覽器成功「監聽」端口。
發生了什麼事嗎?我的瀏覽器是在輪詢應用程序還是應用程序推送瀏覽器提取的tcp數據?
我不確定是否獲取這些數據我需要創建一個客戶端或服務器實例。
找出實際情況的最好方法之一是啓動Wireshark並遵循tcp流。
或者,你可以使用類似TCP問,如果你只關心文本,並沒有組網的詳細信息。
http://ws.apache.org/commons/tcpmon/download.cgi
基於對你的問題的信息有限,最有可能的是,瀏覽器發出的TCP連接,您發回一個格式錯誤的響應。瀏覽器假設你是一個破碎的網站,最好進行調整。如果你沒有發送正確的http頭,它不知道還有什麼要做,所以可能只是把文本放在屏幕上。
知道的細節最好的辦法是使用Wireshark或者TCPMON
將瀏覽器指向到localhost:30003將導致它的開放對本地主機連接到端口30003和發送字符串「GET /」請求從什麼是認爲是一個Web主機的網頁。無論您的應用程序在接收到連接時發送的文本是由Web瀏覽器簡單顯示,就好像它已經接收到Web服務器上的文本文件的內容一樣。
當您在瀏覽器中編寫「localhost:30003
」時,會建立一個連接以偵聽計算機上的端口30003。 URL中的前綴(默認HTTP)決定服務器和客戶端使用的協議,在這種情況下,瀏覽器是連接到您的PC(服務器)的客戶端。
如果您想對程序執行相同的操作,可以使用相同的端口30003與本地主機建立套接字連接。然後,您的程序將成爲客戶端。根據程序(你沒有提到任何關於),你可能有更多的協議選項,並需要在你的程序中處理協議。
另一種方法是使用telnet
連接到您的程序,但它取決於可用的協議。
這是您需要的客戶端實例(在端口30003上連接)。 – 2012-02-11 17:48:25
刪除了[[java]'標籤,它並不真正相關。 – skaffman 2012-02-11 17:51:24