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