CSocket 클래스와 CAsyncSocket 클래스는 MFC가 제공하는 소켓클래스이며, 비동기적인 네트워크 이벤트가 발생하면 알아서 적절한 함수를 호출하도록 하는 구조이다. 그러므로 네트워크 지식이 많지 않아도 소켓 프로그래밍이 가능하다. 채팅서버는 클라이언트로부터 접속을 받으면 해당 클라이언트와 통신하는 CSocket 객체를 만들고 목록으로 관리한다. 이 목록에는 서버와 연결된 모든 클라이언트의 정보가 들어 있다. 한 클라이언트로부터 채팅 메시지를 수신하면 목록에 등록된 모든 클라이언트에게 같은 메시지를 전달해서 모든 클라이언트가 동일한 메시지를 볼 수 있게 하는 것이 핵심이다.

CAsyncSocket 클래스는 입출력이 비동기적으로 이루어지며,
CSocket 클래스는 동기적으로 이루어지는 소켓이다.
클라이언트의 접속을 기다려야 하는 소켓은 비동기적이어야 하는데
이는 클라이언트의 접속시점을 예측할 수 없기 때문이다.

+ Recent posts