에서 ServerSocket의로 패스 '호스트 매개 변수'(핵심이 여기 https://resources.oreilly.com/examples/9781565923713/blob/master/SimpleProxyServer.java에서 찍은)자바
그러나이 예는 시작 매개 변수를 사용하여 . 매개 변수 및 서버에 전달합니다
클라이언트는
final HttpURLConnection conn = (HttpURLConnection) new URL("http://www.google.com")
.openConnection(
new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7901)));
conn.connect();
System.out.println(conn.getResponseCode());
내 초기 아이디어와 같은 HTTP 연결, 클라이언트의 요청을 읽을 문자열로 저장 (또는 byty []), 헤더의 "호스트"를 가져올 수 있었다이다 .
그러나 SimpleProxyServer.java는 데이터를 서버로 보내는 스레드에서 while((bytes_read = from_client.read(request)) != -1)
을 사용하고이 t
스레드가 시작되기 전에 InputSream을 읽으면 그 순간에 코드가 중지됩니다.
내가 연결 질문은 try { server = new Socket(host, remoteport); }
의 작성하기 전에이
InputStreamReader from_client_reader = new InputStreamReader(client.getInputStream());
BufferedReader reader = new BufferedReader(from_client_reader);
String line = reader.readLine();
while (!line.isEmpty()) {
line = reader.readLine();
if (line.contains("Host: ")) {
host = line.substring(line.indexOf("Host: ") + 6,
line.length()).trim().replace("www.", "");
}
}
오른쪽과 같은 것에 대해 이야기하고는 "이 다른 소켓에 매개 변수를 전달하는 방법에 대한 방법 또는 방법 프록시를 만드는 것입니다 클라이언트에서 요청 매개 변수를 사용하여 Socket을 시작하는 서버? "