2012-04-13 98 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