자바 Socket()에 관해서 질문이 있어요~~~!!
가론
지금 자바 Socket, jdbc, 오라클을 이용해서
파일 업,다운로드 프로그램을 만들고 있는데요
파일 업로드를 보면
클라이언트에서는 OutputStream을 통해 byte단위로 파일을 전송하고
서버에는 이를 InputStream으로 받아 하드 디스크에 임시로 저장합니다.
그런데
클라이언트에서 OutputStream을다 쓰고 OutputStream을 close()하면
서버에서 모든 내용을 다 받은 후 소켓이 자동으로 끊어지더군요...
그래서 close()를 안쓰고 파일의 끝이라고 알리는 방법을 찾아 봣지만...
잘 모르겠네요
파일을 전송한후 소켓이 유지되면서 다음 파일을 전송할때 바로 전송하는 방법이 있나요?
아니면 실제로는 파일을 전송할때마다 소켓을 연결,해제 를 반복하나요?
-
알렉산더
아...헤더를 따로 구현해 줘야하는군요
파일 이름은 처음에 전송했는데...파일 크기도 보내면 되는 것을 생각 못했네여
답변 감사합니다 ^^ -
딥블랙
OutputStream을 close()하면 서버에서 모든 내용을 다 받은 후 소켓이 자동으로 끊어지더군요...
- 네..
파일을 전송한후 소켓이 유지되면서 다음 파일을 전송할때 바로 전송하는 방법이 있나요?
- 위에서 close()하셔서 그렇습니다.
close()하지 마시고 계속 보내시면 됩니다.
close()를 안쓰고 파일의 끝이라고 알리는 방법
- 연결하신뒤에 이 파일의 사이즈는 몇 바이트다~ 라고 먼저 보내신뒤에
해당 바이트만큼