Java: 1.7 OS: Linux (ただし、どの Linux かはわかりません)
ソケットの BufferedReader から読み取ったものを含む CharBuffer があります。確かにソケットが確立されました。それをダンプしようとすると、ERROR_FORMATの結果が得られます。
その後、ソケットからデータを読み込みましたが、java.net.SocketException: Connection resetが発生しました
接続リセットの問題は私が修正している問題でしたが、どうしてCharBuffer.toString()がERROR_FORMATの結果を返すのでしょうか?
以下は私のコードですが、何か問題がありますか?
Socket connectionSocket=xxxxxx; //Connected socket given by other library
connectionSocket.setSoTimeout(75*1000);
CharBuffer charBuffer=CharBuffer.allocate(1024);
BufferedReader bufferedReader=null;
bufferedReader=new BufferedReader(new InputStreamReader(connectionSocket.getInputStream(), "BIG5"));
while((bufferedReader.read(charBuffer))!=-1) // in 2nd time, this line throw a java.net.SocketException: Connection reset
{
charBuffer.flip();
respStr.append(charBuffer);
log.info("CharBuffer: "+charBuffer.toString()); // this line runs just 1 tine, print result: "CharBuffer: 2016102618353211301 : ERROR_FORMAT"
charBuffer.clear();
}
log.info("CharBuffer all: "+charBuffer.toString()); // dodn't been execute