2012-04-13 139 views
0

我已經在端口3000上監聽了Java的localhost HTTP代理。我能夠將HTTP請求通道化給代理(瀏覽器使用隨機高價值端口〜50000發送它們)和獲取HTTP響應。問題是我不知道如何將這些響應通道化回瀏覽器以便顯示它們。將HTTP響應發送/瀏覽回瀏覽器

另一種方式是,如何獲取瀏覽器偵聽的端口,以便設置一個套接字來發送該端口上的數據。是否必須將數據發送到我收到的同一個高價值端口?請幫忙。

在此先感謝。

+0

請問您能展示一些代碼嗎? – beny23 2012-04-13 12:30:05

+1

你不需要。在您讀取請求的套接字上發送響應。 – 2012-04-13 12:31:28

+0

我必須發送到約50000(瀏覽器使用的隨機端口)或3000,我設置代理? – 2012-04-13 12:35:31

回答

2

瀏覽器不偵聽某個端口上的任何傳入HTTP通信。瀏覽器是客戶端,並啓動連接,不聽/接收任何。在您的代理中,您應該監聽傳入的瀏覽器請求,保留其套接字,將請求轉發到應該到達的位置,等待響應,最後通過套接字將響應發送回等待的瀏覽器已經開放。

+0

你的意思是我必須把數據發回到同樣高價值的端口〜50000從我得到的請求,而不是3000代理設置? – 2012-04-13 12:43:50

+1

您必須將數據發送回收到請求的相同套接字。不要創建一個新的套接字!套接字是雙向通信管道。 – 2012-04-13 12:49:29

+0

正如Nicolas上面所說的,套接字用於雙向通信,因此您不僅可以使用它們從瀏覽器獲取數據,還可以將數據發回給它。事實上,瀏覽器期望從同一個連接返回數據! – vagelis 2012-04-13 15:19:06