您的位置:首页 > 编程语言 > Qt开发

qt聊天总结及收获

2013-11-25 23:28 465 查看
  
网络传输协议:UDP

客户端往服务器发送消息端口都为8888

enum{

   DENGLUFAS = 3,DENGLUOK,DENGLUNO,DENGLULIST,

   YIDENGLU,LEAVE,MYINF,YIZAIXIAN,

   ZHUCEFAS,ZHUCEOK,ZHUCENO,

   NEWCODEFAS,NEWCODEOK,NEWCODENO,

   NEWNICKFAS,NEWNICKOK,NEWNICKNO,

   REFRESH

};

登陆发送out<<DENGLUFAS<<Account<<Password;

接收端口7777

接收in>>DENGLUOK>>stat

   If stat == 1  登陆成功  进入列表  

状态由0更新为1    表示已上线  

   接收in>>DENGLUNO>>stat

 If stat == 0 密码或账号输入错误

 If stat == -1 账号已经登陆

下线功能思路

下线会在构造函数里面发送给服务器 

out<<LEAVE<<Account<<Password;

服务器从数据库里面查找该账号  然后将该账号的状态更新为0  表示已经下线

注册发送out<<ZHUCEFAS<<nickName<<Account<<Password;

接收端口66666

接收in>>mesRe>>ZHUCEOK 注册成功 

接收in>>mesRe>>ZHUCENO 注册失败

 

修改信息  

接收端口 2222

修改密码status==1

      out<<NEWCODEFAS<<currentAccount<<newCode;  

修改昵称 status == 2

      out<<NEWNICKFAS<<currentAccount<<newNick;

接收修改信息

   in>>type type==NEWCODEOK in>>currentAccount

            密码修改成功

    type==NEWCODENO in>>currentAccount

            密码修改失败

 type==NEWNICKOK in>>newNick

 昵称修改成功

 type==NEWNICKNO in>>newNick

 昵称修改失败

 

自己的信息更新

接收端口5555

         out<<MYINF<<myAccount<<myPassword;

         接收>>YIDENGLU >>acc>>nick;  

          列表开始显示出自己的账号昵称

好友列表导入

         out<<REFRESH<<myAccount<<myPassword;

         接收>>YIZAIXIAN>>friendCount

     for (inti=0; i<friendCount; i++)

    {        in>>friendaccount[i]>>friendnickname[i];

     }循环接收好友  

for (int i=0; i<friendCount; i++)

{

   if (friendaccount[i] == "")

      break;

   else

{ ui->friendListWidget->addItem(newQListWidgetItem(QIco  n(":/new/prefix1/pictures/3.bmp"),

friendnickname[i].append("("+friendaccount[i]+")")));

ui->friendListWidget->setIconSize(QSize(50,50));

   }

}

将好友列表显示到listwidget上面

 

客户端功能  发送自己的信息给服务器  服务器收到后从数据库里面遍历  如果有发送回去成功的信号  反之亦然

 

小Bug  :

1.修改昵称  修改成功后要自己手动刷新

2.好友列表也需要手动刷新  其实可以做个定时器 隔一段时间自己会自动刷新  但涉及到多线程的问题了  不会  时间不够了  

3.里面的好友都是数据库里面有的  没有判别是否在线  

而且没有做添加好友功能  没有创建每个人的好友数据库  公用注册的数据库里面的好友信息 

需要完善的!!!! 

1.添加好友思路   

先创建好自己的好友数据库

将你要添加的好友账号发送给服务器  服务器从注册的数据库里所有好友中查找  如果有 将之添加到自己的好友列表数据库中  发回添加成功信号  如果没有  发送添加失败信号 没有该账号

2.

(1)文档的书写

(2)工程的结合  

(3)数据库,网络的系统学习

(4)代码的书写规范

(5)界面的美化

3.聊天框里不能显示图片 不能发送图片  

4.文件的发送与接收

收获  : 坚持才能有结果   最开始我们四个人一块写的到最后差不多算俩人在做 

那个人也很慢 我就自己开始做  思路,功能大致都有了解了  一个星期就差不多了    感觉学到了不少  明白了不少
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: