네트워크 소켓 통신을 하고 있습니다. 


서버는 리눅스에서 C언어로 작성하고 있고, 클라이언트는 자바로 작업하고 있습니다. 

총 7바이트의 데이터를 DataOutputStream을 이용해서 서버로 보내려고 합니다.

그런데 문제가 생긴 것이 write하는 순서에 따라서 데이터가 정상적으로 갈 때가 있고 비 정상으로 갈 때가 있습니다.


가령 7바이트의 데이터를 

(A)

dos.writeInt

dos.writeByte

dos.writeByte

dos.writeByte

위와 같이 출력을 하면 서버는 정상적인 데이터 값을 받는데 ..


(B)

dos.writeByte

dos.writeByte

dos.writeByte

dos.writeInt

이렇게 정수 자료형을 제일 마지막에 보내게 되면 엉뚱한 값이 서버에서 출력됩니다.


바이트오더 순서를 이리저리 바꿔봐도 문제는 동일한데 ....


서버의 recv 순서를 바꿀 수 없다고 가정했을 때 B와 같이 데이터를 서버로 전송하기 위해서는 

클라이언트에서 어떻게 작업을 해야 할까요??