728x90
- DNS부터 SEND 블록킹 방식으로 작성
- Listener생성
- Accept 논블록킹
- Session생성
- Recv 논블록킹(SetBuffer 초기값 생성)
- Send 논블록킹 (sendqueue, pandinglist, lock)
- Disconnected작성 (Interlock)
- Session클래스 abstract class로 변경
- Onsend, OnRecv, OnConnected, OnDisconnected 구현
- Listener AcceptComp를 Func로 Session을 생성하게 수정
- Connector생성
- Connect논블로킹
- RecvBuffer생성
- SegmentBuffer, writPos, readPos, FreeSize, DataSize, ReadBuffer, WriteBuffer 구현
- Session클래스에 SetBuffer를 RecvBuffer로 수정
- Packet생성
- GooleProtobuf 사용
- PacketSession 생성
- OnRecv에서 전달받은 데이터 크기 검수 seald키워드로 override
- OnRecvPacket abstract구현 (실제 clientSession에서 전달받은 데이터 처리 부분)
- ClientSession 생성
- PacketSession 상속 받아 처리
- PacketHandler 생성
- session과 packet을 받아 데이터를 직접적으로 처리하는 부분
- PacketManager 생성
- 패킷아이디에 따라 패킷처리 Action만들어 Dic으로 관리
- 패킷 아이디에 따라 PacketHandler호출 Action마들어 Dic으로관리
- Room 생성(x특정지역 등록 삭제 전체 패킷 출력)
- 메인프로그램에서 하나만 동작(경우에따라다름)
- 리스트로 세션관리
- Enter, Leave구현
- SessionManager생성
- 싱글톤으로 세션관리 메니저(생성, 세션찾기, 세션제거)
- 패킷모아보내기
- JobQueue
728x90
'VisualStudio > C#서버' 카테고리의 다른 글
[C#서버] 실시간 서버 만드는 법 예제 (0) | 2023.01.03 |
---|---|
[C#서버] Newtonsoft.Json 사용방법 (0) | 2022.12.02 |
[C#서버] 구글 프로토 버퍼(Google Protobuf C#) (0) | 2022.11.18 |
[C#서버] Thread.sleep 사용하지 않고 특정시간마다 이벤트 발생방법 (0) | 2022.11.02 |
[C#서버] 빌드 경로 AppendTargetFrameworkToOutputPath (0) | 2022.11.01 |