7.3.5 EH 메신저 로긴 요청 서비스 [TCP/IP 소켓 프로그래밍 with 윈도우즈]

Peer가 로긴 요청을 FendSVC를 거쳐 LogSVC에게 전달하면 LogSVC는 DbmSVC에게 계정이 존재하는지 확인합니다. 만약 계정이 존재하면 이미 로긴 상태인지 확인합니다. 로긴 상태가 아니면 아이디와 비밀 번호가 일치 여부를 확인합니다. 그리고 일치하면 로긴 준비 상태로 전환합니다. 참고로 Peer가 상태 서비스에게 첫 KeepAlive 메시지가 전달한 이후에 로긴 상태로 변합니다.

[그림 7.7] 로긴 요청 시퀀스 다이어그램

다음은 로긴 요청에서 사용하는 메시지입니다.

번호메시지인자 리스트채널번호설명
1, 2LoginReqid, pw1, 3로긴 요청(아이디, 비밀 번호, 이름)
3IDExistid5아이디 존재 확인 요청(아이디)
4IDExistAckisexist5아이디 존재 확인 응답(존재 여부)
5UserStsid5사용자 상태 요청(아이디)
6UserStsAckstatus5사용자 상태 응답(상태)
7IsCorrectid,pw5아이디, 패스워드 일치 확인 요청(아이디, 비밀번호)
8IsCorrectAckresult5아이디, 패스워드 일치 응답(일치 여부)
9ChangeStsid,STS_LOGINING5상태 변경 요청(아이디, 상태:STS_LOGING)
10,11LoginResresult1,3로긴 요청 응답(결과)