Exemple #1
0
void ClientForm::ON_ReadyRead()
{
    qDebug() << "ClientForm::ON_ReadyRead()";
    QTcpSocket* socket = qobject_cast<QTcpSocket*>(sender());
    if (NULL != socket){
        QByteArray data = socket->readAll();
        QDataStream stream(&data, QIODevice::ReadOnly);
        int type;
        stream >> type;
        qDebug() << "type" << sz_msg[type];
        switch ( type )
        {
            case PACKET_TYPE_WELCOME:
            {
                // 收到服务器的欢迎信息,说明登录已经成功
                ui->Msg->append("log in!");
                break;
            }
            case PACKET_TYPE_REQUEST_CONN_CLIENT: {
                //收到其他客户端要求打洞的请求
                MakeHole(stream);
            }
            case PACKET_TYPE_NEW_USER_LOGIN:
            {
                // 其他客户端(客户端B)登录到服务器了
                break;
            }
            case PACKET_TYPE_HOLE_LISTEN_READY: {
                //对方已准备好
                HandleListenReady(stream);
                break;
            }
            case PACKET_TYPE_REQUEST_MAKE_HOLE:
            {
                // 服务器要我(客户端B)向另外一个客户端(客户端A)打洞
                break;
            }
            case PACKET_TYPE_UserList:
            {
                GetUserList(stream);
                break;
            }
        }
    }
void CSDKMeetingChatUIMgr::HandleUserChanged()
{
	GetUserList();
	UpdateUserListCombox();
}