苏州高博软件技术职业学院
毕业设计(论文)报告
系 别 软件工程系
专 业 软件开发
班 级 0801
姓 名 张蕾蕾
学 号 008320102
设计题目 单线程的简单QQ聊天系统
指导教师 陈勇
起迄日期 2010.12.02 - 2011. 1.09
苏州高博软件技术职业学院
毕业设计诚信承诺书
本人慎重承诺和声明:
我承诺在毕业设计过程中严格遵守学校有关规定,在指导教师的安排与指导下完成所规定的毕业设计工作,绝不弄虚作假,不请别人或抄袭别人的成果。所撰写的毕业论文或毕业设计是在指导老师的指导下自主完成,文中所有引文或引用数据、图表均注明来源,本人愿意为由此引起的后果承担责任。
学生签名: 张蕾蕾 日期: 2010 年 12 月 02 日
毕业设计知识产权权属声明
本人在老师指导下所完成的论文及设计成果、知识产权归属学校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。
学生签名: 张蕾蕾 日期: 2010 年 12 月 02 日
指导教师签名: 日期: 年 月 日
单线程的简单QQ聊天系统
摘 要
目前网络通讯是计算机用户进行交流最普遍的方式,各种各样基于网络的应用也随之诞生,比如“腾讯QQ”——一款基于Internet的即时通信(IM)软件,它使人们能随时在网上与其他用户交换消息,为网络用户提供一个即时交流聊天的平台。但是一般来讲QQ聊天系统是多线程的,因此会涉及到阻塞的问题,如果是单线程的话,线程阻塞在accept方法上时整个进程就不能处理其他事件。本文采用timer控件和socket类中的poll方法相结合的方法进行设计,使用单线程实现了聊天系统,并且不会出现进程阻塞,实质上是采用轮询和查询状态的方式避免了阻塞。本文的设计是在Visual C#2008语言下实现并通过了初步的测试,证明设计是有效的。
关键词 timer控件;套接字Socket;单线程
目 录
第1章 绪论 1
1.1 引言 1
1.1.1 编写目的 1
1.1.2 背景 1
1.2 课题意义 1
1.3 研究现状 2
第2章 系统分析概述 3
2.1 可行性研究 3
2.1.1 技术可行性 3
2.1.2 经济可行性 3
2.1.3 操作可行性 3
2.2 系统分析 3
2.2.1 功能要求 3
2.2.2 设计流程图 4
第3章 总体设计 5
3.1 体系结构设计 5
3.2 功能简介 5
3.2.1 服务器端总体设计 5
3.2.2 客户端总体设计 5
3.3 系统特点 5
第4章 详细设计 7
4.1 系统的开发工具 7
4.1.1 开发环境-- Microsoft Visual Studio 2008 7
4.1.2 C#程序语言 7
4.2 服务器模块设计 7
4.2.1 服务器登录模块 7
4.2.2 服务器聊天模块 9
4.3 客户端模块设计 12
4.3.1 客户端登录模块 12
4.3.2 客户端聊天模块 14
结 论 18
致 谢 19
1第1章 绪论
1.1 引言
随着互联网应用越来越丰富,以快速、交互、简便为代表的即时通讯工具,已经成为当前网络用户最喜爱的网络沟通工具。作为即时通讯工具最具增长潜力之一的聊天软件,不仅在基础应用方面,还是产品扩展应用方面都将有质的飞跃,极大程度上方便了处于在世界各地的友人之间的相互联系。特别是在近几年,即时通讯工具已经成为一个集互动交流、休闲娱乐、信息管理为一体的多元化互联网应用平台。总之,聊天软件的出现给人们彼此之间的沟通带来了无比的方便,人们可以通过聊天软件建立深刻的友情,它必定会成为人们网络生活不可缺少的一部分。
1.1.1 编写目的
综合运用计算机网络应用编程中的TCP网络通信协议以及Socket套接字等知识,以Visual
C#作为开发平台,编写一个单线程聊天程序。本程序需要在一台计算机上运行服务器端程序,然后就可以在同一网络的另外一台计算机上运行客户端程序,登录到服务器上,从而实现服务器与用户之间的即时聊天、发送图片等功能。
1.1.2 背景
◆项目名称:简单的单线程QQ聊天系统
◆项目用户:苏州高博软件技术学院3108宿舍
◆开发者:张蕾蕾
1.2 课题意义
一直以来,空间上的距离都是人们彼此相互交流的最大障碍。以前人们的信息交流是通过电话、信件、电报等手段,由于功能的局限给收发双方带来了很多不便。所以更加即时的直观的使人们能在网上识别在线用户并与他们实时交换消息的即时通信技术应运而生,它是发明以来迅速崛起的在线通讯方式,为网络用户提供一个实时交流聊天的平台。
而且即时通信和社会化网络、统一通信、在线协同三大技术热点的关系将越来越密切,已经构成融合发展的趋势,因此即时通信技术的应用将越来越广泛,越来越普遍。
1.3 研究现状
即时消息系统是一种在后 PC 时代兴起的,以 Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件,它的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。
2第2章 系统分析概述
2.1 可行性研究
2.1.1 技术可行性
随着互联网应用越来越丰富,以快速、交互、简便为代表的即时通讯工具,已经成为当前网络用户最喜爱的网络沟通工具。本系统是一个使用套接字Socket编程,采用其中的TCP面向连接方式的简单的聊天工具,具有很强的实用价值。
2.1.2 经济可行性
开发本系统能够使人们之间的交流带来极大的方便,而且所用的人力、物力、技术、资金等的花费不大,所以今后获得的经济效益一定会大于开发成本。
2.1.3 操作可行性
本开发系统操作步骤简单,运行时只要在登录时输入服务器信息以及自己的昵称就可以进入聊天程序,然后就可以与服务器进行信息交流。
2.2 系统分析
2.2.1 功能要求
ⅰ.客户端登录时输入的服务器信息必须与服务端一致。
ⅱ.用户与服务器之间的信息发送,是本程序需要实现的最基本的功能。
ⅲ.在C/S模式中,服务器和客户端是相互依赖的。服务器启动以后,客户端才能连接上服
务器,如果服务器没有启动,那么用户和服务器不能连接而且客户端或服务器任意一方断开连接,对方都会能接收到通知消息。
socket编程聊天室基本流程2.2.2 设计流程图
1第3章 总体设计
3.1 体系结构设计
通常的通信工具,都采用客户机/服务器(C/S)体系结构,C/S结构包括一个客户端和一个服务器。在Internet通信中,使用TCP面向连接的套接字来建立服务器端和客户端两个IP地址端点之间的会话。一旦建立了这种连接,就可以在设备之间可靠地传输数据。如下图所示:
服务器
客户端
3.2 功能简介
本聊天程序提供了服务器与客户端的一对一连接,客户端必须在服务器启动以后才能连接成功。用户登录以后聊天室的客户端会显示用户已登录和在线时间,还可以与服务器进行即时聊天等。
3.2.1 服务器端总体设计
对于服务器端程序,首先建立的套接字Socket必须用Bind方法绑定到Tcp通信的本地IP地址和端口上,当套接字绑定到本地,使用Listen方法等待客户机发出的连接尝试,接着服务器使用Accept方法为接收任何引进连接做准备,在接受客户端连接之后,客户端和服务器通过Receive方法和Send方法传输数据。
3.2.2 客户端总体设计
对于客户端程序,客户机通过Connect方法把一个地址绑定到创建的Socket对象,一旦客户端与服务器建立连接,客户机就可以像服务器收发数据使用的方法一样,使用Send和Receive方法进行通信。
3.3 系统特点
界面设计美观友好。
规范、完整的基础信息设置。
能够即时进行通信聊天。
系统运行稳定、安全可靠。
第4章 详细设计
4.1 系统的开发工具
4.1.1 开发环境-- Microsoft Visual Studio 2008
Visual Studio是微软公司出品的一款大型应用软件,是一套完整的开发工具集,它主要用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。
4.1.2 C#程序语言
C#是微软为.NET Framework量身订做的程序语言,它拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论