UrlConnection 은 메모리에 모든 output data를 저장하고 , writting 작업이 끝나면 그때서야 네트워크로 보내기 때문에
UrlConnection.setChuckedStreamingMode() 를 사용해야 한다.
소켓관련등의 작업과 파일 입출력에서는 바이트 배열을 쓰게 되면 운영체제의 다이렉트 버퍼로 일단 한번 복사가 된다.
그리고 거기서 시스템콜에 의해서 실제 해당 버퍼로 전달됨.
아래 예제는 내부에 캐시하지말고 들어오는 대로 바로 보내는 설정 방식이다.
/*
* @Program that is used to enable streaming of a HTTP request body without
internal buffering, when the content length is not known in advance.
* SetChunkedStreamingMode.java
* Author:-RoseIndia Team
* Date:-25-Jun-2008
*/
import java.net.*;
public class SetChunkedStreamingMode {
public static void main(String[] args) throws Exception {
URL url = new URL("http://192.168.10.211:8080");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//enable streaming of a HTTP request body without internal buffering
connection.setChunkedStreamingMode(1);
System.out.println("HTTP request body without internal buffering is set");
}
}
'개발자 > Java' 카테고리의 다른 글
자바 슈팅 게임 만들기 - java swing (0) | 2013.10.23 |
---|---|
<a href="#"> 로 javacript 호출 (0) | 2013.05.11 |
JSTL core : <c:forEach> 사용법과 varStatus 상태값 (3) | 2013.03.19 |
Jsp el태그를 사용하여 request,session,page,application 순으로 읽기 (0) | 2013.03.06 |
el 태그 ${} (0) | 2013.03.05 |