본문 바로가기

Progamming/C/C++

C Server와 Java Client 통신 예제

서버가 C언어로 짜여지고

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

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

쉽게 찾지 못하였다.


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

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

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




C server 예제


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




Java Client 코드 예제


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

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

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



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

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









'Progamming > C/C++' 카테고리의 다른 글

ioctl 과 FIONREAD  (0) 2011.07.11
유용한 popen 함수 / system 함수 대용  (0) 2011.07.07