码迷,mamicode.com
首页 > 其他好文 > 详细

ICQ

时间:2016-07-16 19:49:53      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

我一直都想编一个自己的聊天软件,像QQ那种;最近有时间我就自己编了一个。编写的过程中收获很大……

现在拿出来跟大家分享,有兴趣的朋友可以和我交流交流。

我编写的这个软件分三步分组成:数据库部分、服务器部分、客户端部分。实现的过程中采用MVC模式。

整个系统中的核心部分在于服务器端接收用户请求、解析请求、处理请求;客户端接收服务器消息、解析消息、处理并显示消息。

下面定义了本系统客户端与服务器端通信的请求码:

客户端请求码与服务器返回结果:
  00:登录  例如:00:123,123    表示用户账号123,密码123请求登录;登录成功服务器会给客户端发送:

>>>00:123,123

>>>001:123,Tom;120,Yuan;124,John;&$119,123;&$120,123,2016-9-11 15:24:11,你好;120,123,2016-9-11 15:25:11,你好;120,123,2016-9-11 15:26:11,你好;

返回的信息被&$分成三段,第一段表示用户本身与好友列表,第二字段表示收到119申请添加好友的请求,第三段表示离线消息。每段内的记录以‘;’分隔;每条记录里的参数以‘,’分隔;

  10:查询与指定好友的历史消息  10:120,119   表示查询120与119的聊天记录;返回示例:

>>>10,120,119

>>>101:120,119,2016-1-12 0:00:00,hello;120,119,2016-8-10 0:00:00,你好;120,119,2016-8-10 0:00:00,你好,我是120;120,119,2016-8-10
0:00:00,nihao;120,119,2016-8-10 0:00:00,nihao;120,119,2016-8-10 0:00:00,nihao;120,119,2016-8-10 0:00:00,213213;119,120,
2016-8-10 0:00:00,你好;119,120,2016-8-10 0:00:00,hello;119,120,2016-8-10 0:00:00,Hi;119,120,2016-8-10 0:00:00,hello
;119,120,2016-8-10 0:00:00,hi;119,120,2016-8-10 0:00:00,哈哈;    每条历史消息以‘;’为间隔。

  11:点对点发msg  11:120,119,2016-7-16 10:10:10,hello    表示120给119发送点对点消息“hello”,时间为2016-7-16 10:10:10
  12:群发好友msg  12:120,120,2016-7-16 11:11:11,大家好,我是120   表示120给所有好友群发消息,与点对点发消息有所不同的是这里的接收方发送方都是自己账号;
  13:删除历史消息  13:120,119  表示120请求删除与119的聊天记录;这里需要注意的一点是,用户删除聊天记录是仅仅是把数据库中消息表中的d字段置0了,用户查询历史聊天记录时也会检查d字段,对于那些d字段为0的消息是检索不到的,就好像自己把它已经删除了一样;
  20:获得好友列表  20:120  表示请求120的好友列表

>>>20:120
>>>201:122,Yaze;123,Tom;130,M; 

  21:添加好友  21:120,130   表示120请求添加130为好友,服务器端就会根据可以请求在数据库表failrelation(未确认好友关系表)中创建一条记录;
  22:删除好友  22:120,119  表示120删除好友119,服务器端根据请求会在relation表中删除相应记录,并对在用用户进行通知;
  23:确认添加好友  23:130,120   表示130同意添加120为好友,服务器端会删除相应的failrelation记录,并在relation中添加一个记录(添加时调整id顺序,使其检索方便,这里是使数值小的id放在前面);
  30:更改用户名  30:120,Yozane,120  表示把账号120的用户名更改为Yozane,返回修改后的用户信息

>>>30:152,jiaGu,170
>>>301:152,jiaGu,170

  31:更改用户密码   30:120,新密码,旧密码

>>>31:152,152,170
>>>301:152,jiaGu,152


  40:注册新用户   40:Tommy,130  表示申请注册用户名为Tommy,密码为130的用户。

示例:

>>>40:Jia,170
>>>401:152,Jia,170

ICQ

标签:

原文地址:http://www.cnblogs.com/yuanzhenliu/p/5676721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!