自制即时通信系统:socket网络编程(0)

来源:互联网 发布:windows平台开发swift 编辑:程序博客网 时间:2024/05/23 15:06

  笔者曾想过作一个类似QQ的软件,但碍于一直没有时间与时机,恰巧在双学位毕业设计之余偶得此课题,虽自己愿在硬件开发上大做文章,但也止于底子浅薄,如今历时一月有余,总算是初结陋作,然知对于新手而言此中必有许多曲折,笔者便将其中过程一一道来,其中关键之处也会贴上一部分代码以作参考,还望看者多提意见。


先简要概述即时通讯系统(为方便起见,后文便用IM(instand message)代替):
  IM分为客户端与服务端,客户端当然是客户用的,就像是QQ的安装软件,至于服务端,则是运行在服务器上的奶妈程序,之所以称之为奶妈,源于其无私付出也。
  在笔者的IM系统中,主要功能如下:注册,登录,管理好友,聊天,离线信息;主要功能如此,不过框架已定,其余功能自可择日添之。
  客户端负责与用户直接交互,服务端程序则远离客户千里之外,由工作人员维护,在笔者所写程序中,客户端为MFC应用程序,而服务端则为32位控制台程序;


首先解决编程之前的一系列准备工作,笔者用的是:windows8平台+VC6.0编译器+mysql
关于数据库,为什么不用sql server而用mysql?其实笔者一开始便是想着安装sql server5,毕竟微软一家亲,自家的系统兼容性应该不错才对,可是安装之前准备工作尚少,胡乱一通乱搞,再加上sql server5也是个请之易除之难的主,不管我怎么删总是删不干净,又不想重装系统,到最后虽然知道如何安装但也没办法再次安装了,不过各位若是有心用sql server的话,自然可以尝试之,不过记得创建系统还原点哟。


至于mysql,虽然属于中小型数据库,但对于本人课题已是足矣;
关于mysql的安装以及使用,笔者提供一下三条链接,也是当初笔者所参考的,认为不错便分享一二:
http://hi.baidu.com/k_murasaki/item/3cf29be78cd2dc3b4cdcaf24
http://www.360doc.com/content/12/0429/17/1824154_207522878.shtml
http://www.alixixi.com/program/a/2012122586187.shtml
其中关于数据库的安装使用问题想必应该解决,笔者也不多费口舌,不过关于使用时可能遇到的数据库表中数据的编码乱码等问题,在我另起的一篇文章中有提供解决方案(附上链接:http://blog.csdn.net/u010335393/article/details/11585773)
写到这里,如果各位希望自己动手做一个IM系统,笔者建议先多看看关于IM的文章,本贴只负责具体实现的过程,在原理方面不会太过具体。


关于实现原理和相关技术,我推荐一下三本书:
1.TCP/IP Sockets 编程(C语言实现,第二版)Michael J.Donahoo   Kenneth L.Calvert著   陈宗斌 等 译
2.深入理解计算机系统    需要用到第三部分的章节知识:系统级I/O;网络编程;并发编程
3.Visual C++面向对象的编程教程(第二版) 王育坚 编著  此书只为了解mfc编程用,读者亦可参考其它书籍

以上书籍在大学生手中或是图书馆中都有。

原创粉丝点击