그럼 MFC를 이용한 채팅 프로그래밍 시작하기(서버편) - 1에 이어서 계속 진행 하도록 하겠습니다.앞서 말씀드린대로 남은 작업은 데이터 송수신을 위한 가상함수 재정의 부분과 대화상자 클래스에서 서버 소켓을 초기화 하고 데이터를 전송하는 부분입니다. 그럼 먼저 데이터 송수신을 위한 가상함수를 재정의 하도록 하겠습니다. 먼저 서버 소켓에 재정의 해야 하는 OnAccept() 함수를 보도록 하겠습니다. 서버 소켓은 클라이언트의 요청을 기다리는 대기 상태입니다. 이 때 클라이언트는 서버 IP주소와 포트번호로 서버에 접속 요청을 위해 Connect()함수를 호출합니다. OnAccept() 함수는 사용자의 이벤트에 의해서 호출되지 않고 클라이언트 소켓의 Connect() 함수를 통해서 호출됩니다. 따라서 이 메소..
이번시간에는 소켓을 이용해 간단한 채팅 프로그램을 만들어 보도록 하겠습니다. 먼저 채팅 프로그램의 서버와 클라이언트의 통신 순서를 그림을 통해 알아보도록 하겠습니다.아래 그림을 봐주세요.그림에서 보는바와 같이 서버와 클라이언트는 통신을 하게 됩니다.순서를 간단히 살펴보면 다음과 같습니다. 1. 서버 프로그램에서 서버 소켓이 클라이언트의 접속을 기다립니다. 서버측에서 클라이언트의 접속을 기다리기 위해 소켓을 생성후 Listen() 함수를 실행해 클라이언트가 접속할 때까지 대기 하도록 합니다. 서버 소켓을 생성할 때 다른 응용프로그램과의 구분을 위해 특정 포트를 지정해야 합니다.(여기서는 1470번 포트를 사용하도록 하겠습니다.) 2. 클라이언트 프로그램에서 서버 소켓에 접속을 요청합니다. 서버가 Liste..
서버 프로그램이 준비되었으니 클라이언트 프로그램을 구현하도록 하겠습니다. 클라이언트 프로그램은 ‘연결’ 버튼을 클릭하면 서버 프로그램에 연결하여 서버로부터 전송된 문자열을 화면에 출력하게 됩니다. MFC로 클라이언트 프로그램을 구현할 때 다음의 순서로 진행하도록 하겠습니다. 1 응용 프로그램 마법사로 프로젝트를 만듭니다. 2 GUI를 설계하고, 각각의 컨트롤에 대해 멤버 함수와 멤버 변수를 추가하고 코딩합니다. 3 서버 프로그램과 연결해서 기능을 검증합니다. 클라이언트 프로그램을 구현하기 위해서 프로젝트를 생성하겠습니다. 대화 상자 기반으로 고급기능에서 ‘Window 소켓’을 체크하여 프로젝트를 생성합니다. 프로젝트 이름은 HelloClient로 하겠습니다. 서버 프로그램과 마찬가지 순서로 프로젝트를 생..
이제부터 프로그래밍이라는걸 시작해 보도록 하겠습니다. 대부분 프로그래밍의 처음이 그렇듯이 소켓 프로그램도 마찬가지로 간단한 문자열(Hello World)을 네트워크상에서 출력해 보는 것으로 시작하도록 하겠습니다.일반적으로 소켓 프로그램은 서비스를 요청하는 클라이언트와 클라이언트의 요청을 받아 서비스하는 서버로 구성됩니다. 지금부터 구현할 소켓 프로그램은 클라이언트 프로그램이 네트워크상에서 통신 채널을 통해 서버측에 연결되면 서버 프로그램이 즉시 문자열을 클라이언트측에 전송하고, 클라이언트 프로그램은 전송받은 문자열을 화면에 출력합니다. 그럼 먼저 서버 프로그램을 구현해 보도록 하겠습니다. 서버 프로그램은 시작 버튼 하나와 상태를 알려주는 스태틱 텍스트로 구성되고, 사용자가 시작 버튼을 누르면 서버가 클라..
제목/목차1. 소개 2. 클라이언트와 서버간 통신 개요 3. 간단한 서버와 클라이언트 구현 3.1 서버 - 기다리는 소켓 만들기 3.2 클라이언트 - 서버로 연결 3.3 서버 - 클라이언트의 연결 시도 받아들이기 3.4 클라이언트와 서버 - 자료 주고받기 4 만든 클라이언트와 서버를 컴파일하고 테스트 4.1 파일 목록 4.2 컴파일과 테스트 5. 결론 1. 소개소켓은 프로세스간에 자료를 교환하는 수단이다. 프로세스는 같은 컴퓨터에 있거나 네트웍으로 연결된 서로 다른 컴퓨터에 있을 수 있다. 소켓이 연결되면 한쪽이 연결을 닫을 때까지 양편 모두 자료를 보낼 수 있다. 나는 작업중인 프로젝트에 소켓이 필요해서 소켓 API 함수를 감싸는 C++ 클래스를 개발하고 다듬었다. 일반적으로 자료를 요청하는 프로그램을..