自己创建即时通讯聊天软件费力吗?

“3+1”实训 学 院 计算机工程学院 姓 名 何健 班 级 11计4ZS 学 号 指导教师 李红卫 2014年 12月12日 基于Linux的即时通程序的实现 一、摘要 作为一种便捷的网络通讯技术,即时通讯软件已经越来越深入人心,应用范围从单纯的网络聊天工具变成工作生活所不可或缺的信息交流平台。正因为它的重要性,?找出其存在的问题和其自身的局限性,显得尤为迫切。现实的情况是IM软件基本上都集中在MS?Windows平台,很少考虑Linux用户的需求,这给IM应用的普及带来了不便。?因此如能将即时通讯软件移植到Linux操作系统,不仅弥补Linux系统下应用软件匮乏的现状,同时对Linux系统和即时通讯软件普及也有重要意义。? 通过分析和研究即时通讯模型,并对当前几种流行的即时通讯协议的对比,本文采用基于UDP的TCP协议,客户端与服务器采用短连接的通信方式,客户端与客户端采用端对端的通信方式。在系统的具体实现中,客户端设计出相关界面并对相应界面实现了登陆、注册、发送消息、查询信息、添加好友、文件发送等功能;服务器端响应客户端的命令请求并用多线程方案解决了服务器的并发。 关键字:即时通信,Linux ,客户端,服务器 二、需求分析 随着中小型企事业的不断发展,在企业内部实现局域网通信是必不可少的。局域网聊天工具就是一个非常好的局域网通信软件,它可以在职工不移动位置的情况下进行在线聊天、文件传递。这样,可以大大提高企业的工作效率,便于企业内部职员的交流。根据用户对聊天工具的要求,可分为以下几点:? (1)?操作简单方便、界面简洁美观;? (2)?可以在局域网实现文字和文件的传输;?(3)?可以实现用户的注册、登录和注销;? (4)?程序启动之后就能看到当前哪些机器在线,哪些可以与之进行对等通信。可以实现局域网聊天;? (5)?一旦有某个网内的机器上线了,要有即时通知,并能及时更新用户界面中的用户列表;? (6)?当单击用户列表项的时候,直接在聊天对话框聊天,发送聊天信息;? (7)?当有远程用户向本机发送文件的时候,弹出一个消息提示,用户可选择接收或者拒绝;? (8)?文件传输过程中,应该有当前传输状态提示,并作为当前网络状态的一种反馈;? (9)?为用户提供一个简单的聊天记录保存功能。 三、概要设计 客户端之间采用的通信协议主要是UDP。一个客户端要想和另一个客户端进行通信必须要知道对方的ip地址和端口号。因此每个客户端在登录之后必须向服务器发送自己的ip和端口号,服务器将返回其在线好友的ip和端口号,然后服务器还会通过UDP向其好友群发其ip和端口号,在线的好友收到该消息后就会将其保存在自己的在校好友列表里。这样有了好友的ip和端口号后就可以直接与其进行通信了,这里的客户端也要兼有服务端的职责,可以将它看作P2P(端到端,peer?to?peer)。? 为了保证数据的可靠性,对于连续发送大量有序的数据包,采用UDP协议并不保险,因此在必要的时候,也必须采用TCP协议来支持数据的稳定和可靠性。在iQQ里,由于发送文件时时会连续发送大量的数据,因此此时最好使用TCP协议进行数据通信。 四、相关代码

即时通讯软件互通路漫漫

  最近,一笔涉及7.5亿美元的和解在AOL和微软之间达成,作为和解内容的一项,双方并同意开放自家的实时传讯产品,ICQ与MSN将可互通。

  作为最早的IM软件,AOL从几个以色列小伙子手中购买了ICQ之后,一直占有这市场的

主导地位,而微软利用自己在系统级上的优势,推出的MSN message也不断获得用户的青睐,但这两种软件一直以来无法互通。因此,用户要和ICQ和MSN message的用户沟通信息,还需要分别安装此类软件,造成了很大的不便。正是在这种情况下,有些公司推出了融合这些通讯工具的产品,比如Trillian就是非常著名的一种软件。这家公司主要是利用自己分析出他们的协议或在网上找到一些黑客破解出来的ICQ、MSN之类的协议进行编程。此外,点击科技的协同之星软件的最初版本中也曾加入了对ICQ协议的支持。QQ在推出早期版本时,一直有人在Linux上推出能够和QQ进行通讯的工具,也是分析了QQ网络传输的数据包,但最近腾讯公司将传输协议进行了更为严格的加密,使得Linux上的软件无法再同QQ进行互通。

  作为成熟的一家IM软件公司,之所以害怕将自己的协议公开,这是因为用户数是IM软件的巨大屏障,如果协议公开的话,一旦一种新的IM软件在功能上超过原有软件,在兼容情况下,很容易造成成熟IM软件用户的流失。这是任何一个公司所不愿看到的。

  因此,IM软件之间的互通仅仅是因为公司隐藏了传输的协议,一旦公开或者被破解,很快其他的产品便可以毫不费力的得到自己辛辛苦苦获得的用户群,这上任何一个已经占据一定市场份额的公司所不能容忍的,所以即便这两家公司达成了协议,肯定在执行的过程中也会非常谨慎。微软主席比尔盖兹也强调,双方并没有设定互通的时间点,“我们已搭好一个架构,让双方可针对IM互通性进行讨论。”盖兹说,“但我们没有设定互通的时间表。”

  国外IM软件是这样,国内的竞争更为激烈。有了协议这层高墙,尽管QQ之后出现了很多功能各异的IM软件,但无一能够快速成长。不过,现在IM软件的技术越来越成熟,甚至个人就能够完成一个初级的产品,我们在开源社区中看到了MyICQ的源代码,从外表看其功能与早期的QQ版本并没有多大的差距,而这个程序是由一位程序员完成的。正因为如此,据说多家门户网站又重新将目光放在了IM软件身上,但他们重新推广和开发的IM软件能否获得用户的认可,还需要很长时间的考验,但毫无置疑的是,在同各种主流IM软件无法互通的情况下,用户的使用习惯对这些门户是非常大的挑战。

  一直从事网络编程的软件工程师小林表示:即时通讯工具的协议互通在技术并不难,难就难在如何协调这些公司的利益上,看来面对公司对市场份额的争夺,我们的用户不得不接受多种IM软件继续长时间共存的现状了。但愿以后会出现国际标准的IM软件通讯协议,这样IM软件厂商才会把提升软件功能作为最重要的任务,而不是躲藏在协议高墙的后面。

我要回帖

更多关于 国际聊天软件 的文章

 

随机推荐