VisualStudio/C#서버
[C#서버] 서버 개발 순서
usingsystem
2022. 11. 29. 15:19
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