인프런 커뮤니티 질문&답변

hkjin97님의 프로필 이미지
hkjin97

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Packet Generator #5

15분 근처부터 Session을 매개변수로 받는 부분

작성

·

217

1

class PacketHandler

    {

        public static void PlayerInfoReqHandler(PacketSession session, IPacket packet)

        {

            PlayerInfoReq p = packet as PlayerInfoReq;

            Console.WriteLine($"PlayerInfoReq : {p.playerId} : {p.name}");

            foreach (PlayerInfoReq.Skill skill in p.skills)

                Console.WriteLine($"Skill({skill.id})({skill.level})({skill.duration})");

        }

    }

위 함수에서 Session을 받아오지만 직접 사용은 하지 않는 이유가 뭔가요? 그냥 공통 인터페이스를 만들어놓은건가요? 그리고 굳이 IPacket으로 받아와서 PlayerInfoReq로 캐스팅하는 부분이 잘 이해가 안가는데 캐스팅 해주는 이유를 알고싶습니다.

답변 2

0

hkjin97님의 프로필 이미지
hkjin97
질문자

이해했습니다. 답변 감사합니다.

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

Session은 경우에 따라 요청을 보낸 쪽으로 응답을 보낼 때 필요합니다.

IPacket으로 받지 않고 각각 패킷으로 받게
자동화 코드를 만드는게 까다롭기 때문에 그렇게 만든 것이지만 다른 방식도 상관없습니다.

hkjin97님의 프로필 이미지
hkjin97

작성한 질문수

질문하기