2011-07-04 10 views
1

サーバーアプリケーションでは、ソケットでリッスンして、InputStreamReaderを使用して読み取ります。EOFに達したことを示すためにInputStreamに何を送ることができますか?

クライアントは、私はソケットに書き込むと、それからの出力を印刷するには、以下のかという簡単なbashスクリプト、次のとおりです。

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

私はecho経由で自分のデータを送信した後にEOFを示すために好きウォルドとして、javaアプリケーションは、送信されたデータを受信しますが、より多くの待機をブロックし続けます。私は、この1行だけが入力であることを伝える必要があります。

答えて

3

このlinkは、Googleを使って発見

exec 3>&- 

を行うことを示しています。 ;)


は、サーバ側から行うことになるJava側

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を示しています。 –

関連する問題