2011-07-04 2 views
1

서버 응용 프로그램에서 나는 소켓에서 듣고 InputStreamReader을 사용하여 읽습니다.EOF에 도달했음을 나타 내기 위해 InputStream에 무엇을 보낼 수 있습니까?

클라이언트는 간단한 배쉬 스크립트, 여기서 내가 할을 수있는 소켓에 작성하고 그것을 출력 인쇄 할 수 있습니다 : 나는 echo를 통해 내 데이터를 전송 한 후 EOF를 나타 내기 위해 같은 고원

#!/bin/bash 
exec 3<>/dev/tcp/localhost/9999 
echo -e some_text >&3 
cat <&3 

을 , 그대로 자바 응용 프로그램이 전송 된 데이터를 수신하지만 더 기다리고 블록을 계속합니다. 이 한 줄만 입력해야한다는 신호를 보내야합니다.

답변

3

link은 구글을 ​​사용하여 찾을 수

exec 3>&- 

을 나타냅니다. ;)


는 서버 측에서 수행 될 자바 측

outputStream.close(); 
+0

에 닫습니다. 서버에 데이터 전송을 완료했음을 나타 내기 위해 bash 쉘 스크립트가 필요합니다. –

+0

우리는 서버에서 : while (input = inputReader.readline())! = null), EOF를 만나면 null을 반환하기 위해 readLine()이 필요합니다. 알아 내려고하는 것은 Bash 쉘 스크립트에서 EOF 마커를 보내는 방법입니다. –

+0

이 링크는'exec 3> & -'http://tldp.org/LDP/abs/html/io-redirection.html을 나타냅니다. –

관련 문제