Progamming/C/C++

C Server와 Java Client 통신 예제

야기 2011. 7. 11. 22:41
서버가 C언어로 짜여지고

클라이언트가 java로 짜여진 프로그램 통신 예제 이다.

열심히 구글링을 하였지만 소켓간 접속까지는 되는데 데이터를 주고 받는데 문제를

쉽게 찾지 못하였다.


데이터만 주고 받으면 되는 줄 알았지만, 구글링 결과 C는 리틀엔디안, 자바는 빅엔디안을 사용하는

문제까지 겹친다고 한다.  이 문제는 아직 부딪혀 보지 않았으므로 생략하고,

간단하게 Client(JAVA) <-> Server(C)  데이터 전송 예제를 보겠다.




C server 예제


서버는 일반 소켓 프로그래밍 그대로 작성해 준다.




Java Client 코드 예제


클라이언트 부분은 일단 소켓 코딩방법을 따르되, in  out 스트림을 생성 할때 , OutputStream 이나 BuferedOutpuStream 과

InputStream 또느 BufferedInputSteream 으로 스트림을 생성하여야 바이트 단위로 문자 데이터를 전송 할 수 있다.

Object와 같은 데이터 스트림을 사용하게 되면 C언어는 패킷을 해석 할 수가 없다.



또하나 중요한 것은 C 서버에서 java client 로 데이터를 전송 할 때에는 반드시 데이터 끝에 "\r\n" 문자를

추가해줘야지 자바에서 데이터 끝임을 인식한다.