클라이언트가 연결하는 소켓수와 이벤트 수가 같아야 한다. (1:1) 서버가 실행되면 스레드 만들어 클라이언트 연결(FD_ACCEPT)될때 까지 대기한다. 클라이언트가 연결되면 수신(FD_READ) 과 연결 끊김(FD_CLOSE) 를 감시하기 위한 이베트를 등록하고 대기힌다. 결국, 대기하면서 클라이언트의 연결, 수신, 끊김 이벤트 발생할때까지 대기한다. 이벤트 발생하면 이벤트 종류를 구분해서 처리한다. 서버와 클라이언트 실행화면은 WSAASyncSelect 와 같다, 클라이언트는 WSAASyncSelect 에서 사용한 클라이언트를 사용하면 된다. 클라이언트의 유니코드, 멀티바이트 상관없이 된다. https://petra.tistory.com/1778 유니코드 문자집합 멀티바이트 문자집합
TCP/IP 통신은 송수신은 1Byte 전송하므로 UNICODE 를 사용한다면 MuliteByte문자와 UNICODE 상호 변환이 필요하다. MultiByteToWideChar(CP_ACP, 0, m_addr, -1, w_addr, 128); WideCharToMultiByte(CP_ACP, 0, w_buf, -1, m_buf, sizeof(szMsg) * 2, NULL, NULL); m_ 는 멀티바이트, w_ 는 유니코드 윈도우 소켓 모델은 Blocking, select, WSAAsyncSelect, WSAEventSelect, Overlapped, IOCP 있다. Blocking, select 는 단일스레드로 유닉스 호환되며 MS DOS 환경에서 사용된듯 하다. WSAAsyncSelect - 단일 스..