어떻게든 돌아가도 믿음이 안가서 계속 다시 짜고 하는중... 제대로 짠건지..


        CString clientIdentity;
        GetClientIdentity(&clientIdentity, pSocket);

        int index = m_connList.FindStringExact(-1, clientIdentity);
        ASSERT(index != LB_ERR);
        ClientInfo* pClientInfo = (ClientInfo*)m_connList.GetItemData(index);
        ASSERT(pClientInfo != NULL);

        try 
        {
                DBSession session( &m_connList );
                HRESULT hr;

                // 로그인 정보 확인
                QSelectUserInfoByUserId qSelectUserInfoByUserId;
                _tcscpy_s(qSelectUserInfoByUserId.m_userId, 30, pPacket->id);
                hr = qSelectUserInfoByUserId.Open( session );
                ASSERT(hr == S_OK);

                if (qSelectUserInfoByUserId.MoveNext() != S_OK)
                        throw \"아이디가 존재하지 않습니다.\";

                if (_tcscmp(qSelectUserInfoByUserId.m_userPw, pPacket->pw) != 0)
                        throw \"비밀번호를 확인하여 주십시오.\";

                if (qSelectUserInfoByUserId.m_login == TRUE)
                        throw \"이미 로그인 중입니다.\";


                pClientInfo->SetId(qSelectUserInfoByUserId.m_userId);
                m_connList.DeleteItem(index);
                m_connList.AddString(pClientInfo->GetClientIdentity());
                m_connList.SetItemData((DWORD)pClientInfo);

                AckLogin ackLogin;
                ackLogin.result = TRUE;
                pSocket->Send( ackLogin );

        SendMessageMyLog(\"%s 로그인\", pClientInfo->GetClientIdentity());
        }
        catch (const char* errMsg)
        {
                // 로그인 실패 응답
                AckLogin ackLogin;
                ackLogin.result = FALSE;
                _tcscpy_s(ackLogin.msg, 1023, errMsg);
                pSocket->Send( ackLogin );
                
                SendMessageMyLog(\"%s(%s) 로그인 실패\", clientIdentity, pPacket->id);
        }