基于socket的简单聊天室的设计与实现.docVIP

基于socket的简单聊天室的设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于socket的简单聊天室的设计与实现   摘要:介绍了在Linux上用socket编程来设计并实现一个简单聊天室。首先选择了服务器的轮询工作方式,以满足多个用户进程的连接;然后从数据结构、模块开发和源码实现三个方面详细分析了聊天室的实现;最后将该聊天室与传统聊天室进行了比较,并指出该聊天室的优势所在。   关键词:聊天室; Linux ;socket ;数据结构   中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)21-30442-03      The Design and Accomplishment of the Simple Chat-room Based on Socket   ZHOU Liu-jun1,2, WU Jin-lei1   (1.College of Information and Electrical Engineering of CUMT, Xuzhou 221008, China;2.Xuzhou Institute of Architectural Technology, Xuzhou 221008 China)   Abstract: How to design and accomplish a simple chat room with socket in linux is introduced is introduced in this paper. In order to meet many connections of user process, the poll woking of server is selected firstly. Then accomplishment of the simple chat-room is analyzed particularly in the facets of data structure, module development and codeaccomplishment. According to the comparison of the chat room and the traditional chat room, advantage of the chat room is shown.   Key words: chat room; linux; socket; data structure      1 引言      Socket聊天室与传统的CGI聊天室工作原理有很大的不同,其基本原理是抛开OGI和WWW服务器,根据HTML规范,接收到浏览器的请求以后,模仿WWW服务器的响应,将聊天内容发回浏览器。在浏览器看来就像浏览一个巨大的页面一样始终处于页面联接状态, 这就是一个专门的聊天服务器,一个简化了的WWW服务器。这样相比CGI方式来说,Socket聊天室的优点就很明显:不需要专门的WWW服务器,避开耗时的CGI 过程;如果使用单进程服务器,就不需要每次产生新进程;数据交换完全在内存中进行,不用读写文件;不需要定时刷新,减少屏幕的闪烁,减少对服务器的请求次数。   linux作为一个优秀的操作系统,具有成本低、性能高、稳定性和源代码开放等特点,并吸收了Unix的20年的发展经验,内核精炼而稳定。鉴于socket聊天室和linux系统的优点,本文即在linux下,利用socket编程实现一个简单的聊天室。      2 服务器设计      聊天室采用client/server结构,在server进入listen状态之后,由于已有多个用户在线,所以程序需要同时对这些用户进行操作,并在它们之间实现信息交换。这在实现上称为I/O多路复用技术。下面即为几种常用的多路复用技术:   2.1 多路复用技术   多路复用一般有以下几种技术:   1)子进程技术。应用多个子进程,每一个对一个单工阻塞方式通信。所有子进程通过IPC和父进程进行通信。父进程掌管所有信息。这种方式的缺点是实现复杂,而且由于IPC在各个操作系统平台上不完全一致,会导致可移植性降低。   2)信号驱动的异步I/O技术。首先,异步I/O是基于信号机制的,并不可靠。其次,单一的信号不足以提供更多的信息来源。还是需要辅助以其他的手段,实现有很高的难度。   3)select()技术。在BSD中提供了一种可以对多路I/O进行阻塞式查询的方法―select()。它提供同时对多个I/O描述符进行阻塞式查询的方法。   4)非阻塞通信技术:将文件管道通过fcntl()设为非阻塞通信方式,每隔一段时间对他们实行一次轮询,以判断是否可以进行读写操作。这种技术实现简单,该聊天室即采用此种I/O复用技术,下

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档