分享我用Qt写的游戏组队群聊系统

jasonslaex 2012-05-03 08:40:11
加精



#ifndef GETSERVERINFO_H
#define GETSERVERINFO_H

#include <QObject>
#include <QtNetwork/QTcpSocket>
#include <QStringList>
#include <httpget.h>
//=====================================================================================================
//WGM约战平台组队群聊系统.实现区域组队功能.获取玩家所在区域.玩家可以自己建立组队.队长踢人.解散等
//此代码为核心网络通信模块.基于QT代码[完整源码在我的博客里面]
//程序编程人员:Jason's.Alex QQ:531401335
//QT社区群:3855916
//日期:2012/01/14
//我会将WGM约战平台各个模块公开出来,整个平台用到了很多技术。我几乎花了半年的时间来开发这个平台,遗憾的我没有写开发文档,思路有点不清晰。虽然CS这个游戏落寞了。但是我们这些老菜鸟。希望能记起它说带来的美好
//=====================================================================================================
#define VERSION "1.2.1"

enum HostInfo//和主机通讯的消息
{
HT_INFO,//群组信息
HT_MESSAGE,//消息
HT_KICK,//踢出
HT_ADVERTISING,//广告
HT_MEMBER,//成员
HT_DISSOLVE,//解散
HT_QUIT,//退出
HT_CREATE,//创建
HT_LOGIN,//登入
HT_TEAMANNOUNCEMENT=100//创建团队广播
};

enum EnumChinaArea//中国各大地区分类
{
ECA_ALL,//全部
ECA_SOUTHWEST,//西南
ECA_NORTHWEST,//西北
ECA_SOUTH,//华南
ECA_CENTRAL,//华中
ECA_EAST,//华东
ECA_NORTH,//华北
ECA_NORTHEAST,//东北

};

class GetServerInfo : public QObject
{
Q_OBJECT
public:
explicit GetServerInfo(const QString &,const QString &,const QString &,QObject *parent = 0);
void ConnectToHost();//连接主机

void SendMessage(const QString &);//发送消息
void SendKick(const QString &);//发送KICK
void GetAdvertising();//获取广告
bool FilterArea(const QString local)const;//过滤区域

public slots:
void SendQuit();//发送退出信息
void Login();//登入消息
void SendCreateTeam(const QString &,const QString &,const quint8);//发送创建消息
void SendRefreshMember();//发送刷新成员信息

signals:
void EmitChangeAdvertising(const QPixmap &);
void EmitMessage(const QString &);
void EmitKick();
void EmitAnnouncement(const QString&);
void EmitRefreshMember(const QStringList &);
void EmitChangeWindowTitle(const QString &);
void EmitUpdateVersion(const QStringList &);

private slots:
void ReadMessgaeEvent();//读取消息时间
void ConnectFinish();//连接主机完成
void NetworkError(QAbstractSocket::SocketError);


private:
void ReadMessage(QDataStream &in);//读取消息
void ReadKick(QDataStream &in);//读取KICK

void ReadAdvertising(QDataStream &in);//读取广告
void ReadMember(QDataStream &in);
void ReadTeamInfo(QDataStream &in);//读取团队信息

void ReadLoginState(QDataStream &in);//读取登入状态

void SendServerDataType(HostInfo,const QStringList &list=QStringList());

const QStringList GetLocalAndCircuit(const QString &ip)const;//获取所在地区信息和线路信息

private:
QTcpSocket *tcpClient;
QString hostAddress;
QString userName;//用户名字
QString teamID;//团队ID
QString privilege;//权限
static QStringList filterChinaAreaList;//中国过滤区域列表
EnumChinaArea ChinaArea; //中国过滤的区域枚举值
HttpGet *webGet;//获取网页数据。进行分析取得ip地址信息
QString local,circuit;//地区和 线路
};

#endif // GETSERVERINFO_H
...全文
5727 77 打赏 收藏 转发到动态 举报
写回复
用AI写文章
77 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasonslaex 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 73 楼 的回复:]

QT没玩过,但是我知道LZ喜欢ALEX,最近ALEX又在TFE复出了
[/Quote]
这个你也知道啊.哈哈
feilinhe 2012-09-16
  • 打赏
  • 举报
回复
做得不错~
小黑小宝 2012-09-13
  • 打赏
  • 举报
回复
欣赏美工。。
nanjingnew4 2012-09-13
  • 打赏
  • 举报
回复
QT没玩过,但是我知道LZ喜欢ALEX,最近ALEX又在TFE复出了
zhuzhu9651 2012-09-12
  • 打赏
  • 举报
回复
谢谢楼主啦
boolgood 2012-07-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
[code=c/c++] if(QMessageBox::information(this,tr("Confirm Close!"),tr("You are confirm close this?"),[/code]
You are confirm close this? LZ这句英语好像有语法错误哦
[/Quote]

确实啊 很低级的语法错误
满衣兄 2012-07-10
  • 打赏
  • 举报
回复
文字聊?一边打游戏一边打字聊天?
sunnyMlon 2012-07-09
  • 打赏
  • 举报
回复
貌似运行不出来,老是提示fatal error C1083: Cannot open include file: 'getserverinfo.h': No such file or directory
wxfzy 2012-07-07
  • 打赏
  • 举报
回复
好东西啊!
夕阳四草 2012-07-07
  • 打赏
  • 举报
回复
可以copy下来看看了,QT正在学习中,网络编程这块确实有点问题
he_love 2012-07-06
  • 打赏
  • 举报
回复
楼主流币了!!
msayz 2012-07-05
  • 打赏
  • 举报
回复
学习了 Qt真强大
Anod 2012-07-05
  • 打赏
  • 举报
回复
LZ已经发布所有代码了 大家在CSDN下载里搜索吧download.csdn.net/detail/rushroom/4409207 资源开始下载于2012.07.03 在首页看到的

为作者感到遗憾。
Anod 2012-07-05
  • 打赏
  • 举报
回复
LZ已经发布所有代码了 大家在CSDN下载里搜索吧http://download.csdn.net/detail/rushroom/4409207 资源开始下载于2012.07.03 在首页看到的

为作者感到遗憾。
wujuzhuan 2012-07-04
  • 打赏
  • 举报
回复
楼主,请弄成压缩包来下载吧
安卓机器人 2012-07-04
  • 打赏
  • 举报
回复
楼主,整一个源码下载吧。
mklj555 2012-07-03
  • 打赏
  • 举报
回复
学习了,谢谢。
skina123456 2012-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

C/C++ code

#include "getserverinfo.h"
#include <QMessageBox>
#include <QHostAddress>
#include <QTimer>
#include <QTime>
#include <QNetworkInterface>
#include <QDebug>

QStringList GetServerInfo::fi……
[/Quote]
可以吗?
blackkettle 2012-07-03
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

[code=c/c++] if(QMessageBox::information(this,tr("Confirm Close!"),tr("You are confirm close this?"),[/code]
You are confirm close this? LZ这句英语好像有语法错误哦
[/Quote]

Do you confirm to close this window?
tan625747 2012-07-03
  • 打赏
  • 举报
回复
不用用你宝贵的时间,浪费时间了,lz
加载更多回复(33)

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧