에코 메세지를 송수신하는 예제
1. 서버는 메인 스레드와 자식 스레드 두 개를 가진다.
- 메인 스레드는 에코 메세지를 송신한 이후 할 일이 끝난 RemoteClient 인스턴스를 제거한다.
- 자식 스레드는 서버 소켓으로 부터 Accept될 때 마다 RemoteClient를 생성하고 클라이언트 소켓과 에코 메세지를 송신할 작업을 할당한다.
2. Remote Client의 Echo Thread
Echo Thread에서는 Receive()를 통해 메세지를 수신하고 다시 메세지를 전송한다. (Echo)
소켓을 닫고 현 작업에 해당하는 RemoteClient를 제거할 준비를 한다.
메인 스레드의 세마포어에 이 사실을 알린다.
3. 에코 이후 Main Thread의 역할
에코 작업이 끝날 때마다 세마포어가 활성화되고 RemoteClient 인스턴스를 제거한다.
- 작업 흐름 순서
'Computer Science 기본 지식 > 소켓 프로그래밍' 카테고리의 다른 글
[게임 서버 프로그래밍 교과서] IOCP 서버 (0) | 2021.08.19 |
---|---|
[게임 서버 프로그래밍 교과서] Poll을 이용한 논블로킹 서버 (0) | 2021.08.19 |
inet_pton / inet_ntop (0) | 2021.08.18 |
[TCP/IP 소켓 프로그래밍] (18) IOCP 서버 (0) | 2021.04.09 |
[TCP/IP 소켓 프로그래밍] (17) Overlapped IO 서버 (0) | 2021.04.08 |