1. appsettings.json으로 서버 설정 작성
  2. 서버 옵션 설정, 호스트 빌더로 넣기
  3. EFBinaryInfo와 ReceiveFilter 만들기
  4. ServerPacketData 만들기
  5. 패킷 디파인(에러코드랑, 패킷 ID)
  6. 패킷 데이터 (헤더 길이, 아이디 패스워드 최대 길이 등 상수 선언 + 만들고 해부하는 함수)
  7. 룸, 룸 매니저, 유저 매니저 구현
  8. 패킷 핸들러들 구현

ServerPacketData : 패킷 형식 → 내가 만드는?

EFBinaryInfo : 패킷 형식 → 외부에서 받은거?

ReceiveFilter : 패킷 형식에 따라 패킷 분해? → 외부에서 받은거 분해?

PacketProcessor : 패킷 처리기 → 메세지 버퍼 하나 있고 여기서 하나씩 꺼내서 받은 패킷에 대한 처리?

Mainserver 의 OnPacketReceived 함수에서 ClientSession과 EFBinaryRequestInfo로 매개변수 받아서 내부에서 ServerPacketData 변수 하나 만든 다음에 매개변수로 받은거 내용을 ServerPacketData 형식으로 바꿔서 Distribute 함수 이용해서 PacketProcessor한테 넘겨줌

ReceiveFilter 클래스 만들고 Mainserver의 생성자에서 부모 생성자 쓰는 곳에서 DefaultReceiveFilterFactory에 <ReceiveFilter, EFBinaryRequestInfo> 넣어서 이대로 처리

Buffer.BlockCopy(저장될 배열, 저장될 위치 시작점, 복사해올 배열, 복사할 위치 시작점, 복사할 바이트 수)

BitConvertor.ToInt16(변환될 배열, 변환을 시작할 인덱스)