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(); }