본문 바로가기

STUDY

소켓으로 에코 프로그램, 1:1 채팅 프로그램 짜기

소켓(socket)이 무엇인지 알기위해선 TCP/IP가 무엇인지 알아야한다. (http://chojpsh1.tistory.com/84 참조) 왜냐하면 소켓은 TCP/IP로 통신하는 네트워크 내에서 행해지는 통신 장치(방법)이기 때문이다. 

IP 주소와 포트번호로 생성되는 네트워크 어드레스를 통해 클라이언트 프로그램과 서버 프로그램이 통신되도록 하는 아이가 소켓이다.

클라이언트와 서버 간의 소켓을 통해 어떻게 통신이 이뤄지는지 그림으로 보는게 훨씬 이해하기 쉽다.

이를 통해 두가지 프로그램을 짜보았다. 우선 그림에 데이터 전송부분에 클라이언트와 서버 양방향 통신과는 달리 서버 측에서 일방적으로 입력한 문장을 클라이언트 측에 프린트 해주는 에코프로그램과 클라이언트와 서버 동시 전송은 안되지만 한 문장씩 주고받을 수 있는 1:1 채팅 프로그램을 짜보았다. 동시 전송이 가능케하려면 쓰레드를 이용해 짜야할 것 같다.

소켓으로 프로그램 짜기 https://github.com/chojpsh1/socket

echo_server, echo_client - 에코 프로그램

chat_server, chat_client - 1:1 채팅 프로그램


참고 - http://blog.naver.com/PostView.nhn?blogId=myca11&logNo=80146459609http://smeffect.tistory.com/entry/01-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-TCPIP-%EC%86%8C%EC%BC%93-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D