Computer Science 기본 지식/소켓 프로그래밍
[게임 서버 프로그래밍 교과서] 블로킹 소켓 ManyClient - ManyServer 구조
로파이
2021. 8. 19. 00:09
에코 메세지를 송수신하는 예제
1. 서버는 메인 스레드와 자식 스레드 두 개를 가진다.
- 메인 스레드는 에코 메세지를 송신한 이후 할 일이 끝난 RemoteClient 인스턴스를 제거한다.
- 자식 스레드는 서버 소켓으로 부터 Accept될 때 마다 RemoteClient를 생성하고 클라이언트 소켓과 에코 메세지를 송신할 작업을 할당한다.
2. Remote Client의 Echo Thread
Echo Thread에서는 Receive()를 통해 메세지를 수신하고 다시 메세지를 전송한다. (Echo)
소켓을 닫고 현 작업에 해당하는 RemoteClient를 제거할 준비를 한다.
메인 스레드의 세마포어에 이 사실을 알린다.
3. 에코 이후 Main Thread의 역할
에코 작업이 끝날 때마다 세마포어가 활성화되고 RemoteClient 인스턴스를 제거한다.
- 작업 흐름 순서