2012-04-13 3 views
0

Java에서 포트 3000에서 수신 대기중인 localhost HTTP 프록시를 만들었습니다. 프록시에 HTTP 요청을 채널화할 수 있습니다 (브라우저에서 무작위로 높은 값의 포트 ~ 50000을 사용하여 보냅니다). HTTP 응답을 얻으십시오. 문제는 이러한 응답을 브라우저에 다시 표시하여 표시하는 방법을 알지 못한다는 것입니다.HTTP 응답을 다시 브라우저로 보내거나 채 웁니다.

다른 방법으로 브라우저에서 수신 대기하는 포트를 얻으면 어떻게 해당 포트에서 데이터를 보내도록 소켓을 설정할 수 있습니까? 데이터를 수신 한 동일한 고가 포트로 데이터를 전송해야합니까? 도와주세요.

미리 감사드립니다.

+0

일부 코드를 표시 할 수 있습니까? – beny23

+1

당신은하지 않아도됩니다. 요청을 읽은 소켓에서 응답을 보냅니다. –

+0

~ 50000 (브라우저에서 사용하는 임의의 포트)이나 3000 프록시로 설정해야합니까? –

답변

2

브라우저가 일부 포트에서 들어오는 HTTP 트래픽을 수신 대기하지 않습니다. 브라우저는 클라이언트이며 연결을 시작하고 수신 대기/수신하지 않습니다. 프록시에서 들어오는 브라우저 요청을 기다리고, 소켓을 잡고, 요청을 전달할 위치로 전달하고, 응답을 기다리고, 마지막으로 응답을 대기중인 브라우저로 보내야합니다. 열려있다.

+0

당신은 내가 요청한 곳에서와 같은 고가의 포트 ~ 50000까지 데이터를 다시 보내야한다는 것을 의미합니까? –

+1

요청을받은 곳과 동일한 소켓으로 데이터를 다시 보내야합니다. 새 소켓을 만들지 마라! 소켓은 양방향 통신 파이프입니다. –

+0

Nicolas가 말한 것처럼 소켓은 양방향 통신을위한 것이므로 브라우저에서 데이터를 가져 오는 데 사용할 수있을뿐만 아니라 데이터를 다시 보낼 수도 있습니다. 실제로 브라우저는 동일한 연결에서 데이터를 반환 할 것을 기대합니다! – vagelis

관련 문제