YunoNetTransport = TCPSession이 헤더 + 바디를 읽어 최종 패킷을 만든 뒤 콜백
YunoNetProtocol = PacketDispatcher가 최종 패킷을 파싱/검증하고 패킷 타입별 핸들러 호출
YunoGame/YunoServer = Transport에서 올라온 패킷을 Protocol Dispacher에 넘김
패킷 생성 = PacketBuilder가 Protocol 규약에 맞는 바이트 배열을 만들어줌
Client >> Server Flow
- YunoGame 프로젝트의 Game Logic에서 전달하고 싶은 데이터를 PacketBuilder::Build를 이용해서 패킷을 생성
- YunoClientNetwork::SendPacket()으로 전달하면 YunoClientNetwork는 네트워크 스레드에서 TCPClient::Send() 호출
- TCPClient는 현재 연결된 TCPSession의 Send()를 사용하여 패킷 송신
- TCPServer 내부의 TCPSession이 헤더+바디를 읽어 완성 패킷을 만들고 OnPacket 콜백
- TCPServer가 등록된 OnPacket을 통해 YunoServerNetwork로 전달
- YunoServerNetwork는 PacketDispatcher::Dispatch()를 호출해 Protocol레이어에 위임
- PacketDispatcher가 타입에 맞는 핸들러 호출
Server >> Client Flow
- 패킷 핸들링 후 PacketBuilder로 응답 패킷 생성