리스터 - 서버 입장에서 클라이언트의 요청에 맞춰 처리해줌
커넥터 - 클라이언트 입장에서 서버의 요청을 처리함
왜 커넥터가 필요할까?
기존에 main에서 세션객체를 직접 생성하지 않고, 커넥터를 이용하여 세션을 생성해준다 .
또한 서버와 컨텐츠의 분리를 위해 GameSession을 정의해준다.
커넥트를 호출하면 서버와의 통신에 사용할 소켓을 생성해준다 .
또한 소켓 비동기 이벤트를 생성 후, 완료 콜백 등록과 엔드포인트, 유저 토큰을 등록해준다.
args.RemoteEndPoint
에 endPoint
를 설정하는 이유는, 비동기 연결 시도에서 연결할 서버의 주소와 포트를 지정하기 위해서입니다. 비동기 작업이 시작되면, 소켓은 이 엔드포인트를 사용하여 서버에 연결을 시도합니다.args.UserToken
에 socket
을 설정하는 이유는, 비동기 작업이 완료된 후 해당 작업과 관련된 소켓 객체에 접근할 수 있도록 하기 위해서입니다. 비동기 작업의 콜백 메서드(OnConnectedCompleted
)에서 UserToken
을 통해 소켓 객체에 접근할 수 있으며, 이를 통해 연결 후 추가 작업을 수행할 수 있습니다.accept
함수accept
함수는 서버 측에서 사용되며, 클라이언트의 연결 요청을 수락하는 역할을 합니다.
accept
함수를 호출하여 이 연결을 받아들입니다.