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

딩동댕님의 프로필 이미지

작성한 질문수

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

소켓과 세션

작성

·

1.1K

0

소켓과 세션의 차이를 모르겠습니다.

소켓은 휴대폰에 비유를 하자면 세션은 뭔가요?

그리고 네트워크이론강의때에 손님,문지기,대리인이 필요하다고 말씀하셨는데

대리인이 왜필요한건지 모르겠어요 고로 문지기만 있어도 서로 소통이 잘 되지않나요?

똑같은말인데 소통하는데에 있어서 소켓이 두개만있으면 되지 왜 대리인까지 소켓을만들어서 3개의 소켓을쓰는지 모르겠습니다.

답변 5

2

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

소켓은 휴대폰에 비유한다면,
세션은 지정 테이블 정도라고 볼 수 있겠네요.
말 그대로 손님의 소켓, 버퍼 등 필요한 온갖 잡동사니를 모아놓는 곳입니다.

대리인이 필요한 이유는 문지기랑 소통하는게 아니라
자기 일행과 소통을 해야 하기 때문입니다.
문지기는 그냥 자리 안내만 해주는 쪽에 가깝습니다.

1

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

서버에 데이터를 보내줄 때마다 생기는 것은 아니고,
최초로 서버에 연결할 때 하나를 만들어주게 됩니다.

세션은 클라에 대한 모든 정보를 들고 있는데
가장 중요한 Socket부터, 데이터를 받아줄 Buffer,
그리고 플레이 하는 Player 정보 등을 들고 있게 됩니다.

1

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

[소통]할 때는 2개면 충분하고, 그건 게임서버에서도 다르지 않습니다.
다만 처음에 클라 -> 서버에 접속하기 위해서는
서버 쪽에 Listen 상태로 대기중인 특별한 소켓이 필요합니다.

0

딩동댕님의 프로필 이미지
딩동댕
질문자

세션은 그럼 유저(클라)한명이 서버에 데이터를 보내주면 세션이 자동으로 한개씩 생기는건가요?

0

딩동댕님의 프로필 이미지
딩동댕
질문자

간단한 문자열을 일대일로 소통할때는 클라소켓하나 서버소켓하나 총두개의 소켓으로 데이터를 주고받을수있지않나요?

이때도 대리인개념이 적용되나요?