2012. 6. 29. 10:38
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 |
---|