OS : linux centos 6.2

서버 구성 : DataInputStream으로 데이터를 읽고, DataOutputStream 으로 데이터 전송.


서버를 윈도우에서 구동하고, 클라이언트 구성 시 BufferReader를 사용해서 readLine()으로 읽으니 문제없이 동작하던 코드가 리눅스로 이관하니 데이터 전송은 문제가 안되는데, 데이터 수신 시 읽을 데이터가 없다고 하더라.. 뭔 짓인지..


어쩔 수 없이 클라이언트 코드를 변경하여 BufferReader 대신 DataInputStream 으로 교체하고 데이터를 수신하려고 하는데, readLine()이 없으니 상당히 귀찮더라. DataInputStream 에서 전체 데이터 읽기 위해서는 아래와 같이 하면 되더라.


ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte byteBuffer[] = new byte[1024];
               
for(int i; (i=dis.read(byteBuffer)) != -1; )
{
    baos.write(byteBuffer, 0, i);
}

byte result[] = baos.toByteArray();


'java > socket' 카테고리의 다른 글

[socket] - Advanced Socket Programming  (0) 2010.06.30
Posted by 짱가쟁이