간단한 HTTP 클라이언트를 만들었습니다.이 클라이언트는 웹 페이지에서 파싱 된 URL 집합을 다운로드합니다.java URLConnection을 사용하는 여러 TCP 연결
제 문제는 실제 브라우저 (IE, Firefox, Chrome)에 비해 다운로드 속도가 느리다는 것입니다. 특히 페이지에 많은 객체가 포함되어있는 경우.
(wireshark로) 실제 브라우저가 페이지로드를 시작한 후 즉시 동일한 밀리 초 내에 5-10 개의 TCP 연결을 설정할 것임을 알았습니다. 이러한 연결 부위는 일정 기간 동안 동시에 살게됩니다.
내 클라이언트는 동시 TCP 연결을 설정하고 (TCP 연결을 다시 사용합니다),이 모든 것을 적극적으로 수행하지는 않습니다. 나는 이것이 내 클라이언트가 느린 이유 중 하나라고 추측합니다.
입력 스트림에서 읽기 전에 여러 URLConnections를 만들려고했지만이 방법이 효과가 없습니다. 나는 경험이 없기 때문에 아마 잘못했을 것이다.
URLConnection을 사용하여 브라우저에서 TCP 연결 설정과 관련하여 수행하는 작업을 모르는 사람이 있습니까?
데이터를 다운로드 할 각 URLConnection에 대해 별도의 스레드를 만들고 있습니까? – MeBigFatGuy
응답 해 주셔서 감사합니다! 아니요, 방금 별도의 URLConnection 객체를 만들었습니다. 나는 그들을 별도의 스레드에서 실행해야한다고 생각한다. 흠, 내가 할 수 있고 여전히 하나의 입력 스트림 수신기 만 가질 수 있습니까? – plithner