1 / 25
文档名称:

综合课程设计--基于Socket的即时通讯系统.doc

格式:doc   页数:25
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

综合课程设计--基于Socket的即时通讯系统.doc

上传人:DOC KING 2012/5/8 文件大小:0 KB

下载得到文件列表

综合课程设计--基于Socket的即时通讯系统.doc

文档介绍

文档介绍:评阅教师评语:
课程设计成绩
考勤成绩
实做成绩
报告成绩
总评成绩
指导教师签名:
《综合课程设计》
设计报告
论文题目: 基于Socket的即时通讯系统


学院(系):
班级:
学生姓名: 学号
指导教师:

时间: 2011 年 6月 7日到 2011 年 6 月 17 日
设计题目
基于Socket的即时通讯系统
设计目的
通过综合课程设计,使学生能够运用《数字信号处理》、《信号与系统》、《通信原理》、《面向对象的程序设计》、《计算机通信网》、《通信协议开发及应用》等课程的知识来设计一个基于Socket的即时通讯系统,培养学生的动手能力以及分析问题、解决问题的能力。
设计要求
(一)基本要求
熟练掌握面向对象的程序设计方法;
实现点对点通讯,能进行文字对话传输,包括客户端与服务器端;
能对系统参数进行配置。
(二)提高要求
1、实现文件、图片传输;
2、语音对话(两人及两人以上);
3、友好的对话界面。
四、设计原理
Socket原理,大致分为以下几个步骤。
服务器端的步骤如下。
(1)首先,在实用Socket之前,要首先初始化Socket,就是实用AfxSocketInit()函数。
(2)在初始化完成以后,就可以建立服务端的Socket,然后实用该Sokcet开始侦听整个网络中的连接请求。
(3)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接。连接的过程中,ept(),我们将建立的连接的代码放到该响应函数里面,在建立连接的过程中,会产生一个新的 Socket,我们使用找个Socket来进行数据的通信。
(4)在通信的过程中,服务器端的产生的新的Socket会通过一个消息响应函数OnReceive()来接受到达的数据。数据的发送可以使用Send()来完成
(5)当完成通信后,服务器关闭与客户端的Socket连接。
客户端的步骤如下。
(1)同样的,初始化Socket,并建立客户端的Socket,确定要连接的服务器的主机名和端口。
(2)发送连接请求到服务器(MFC中使用Connect()),并等待服务器的回馈信息。
(3)连接成功后,与服务器进行数据的交互。
(4)数据的读取同服务端一样,也是通过OnReceive()来完成的,数据的发送通过Send()即可。
(5)数据处理完毕后,关闭自身的Socket连接。
软件设计
调试过程
七、实验结果分析
一,如何更好的检测TCP连接是否正常
这方面问题,我上网查了很久,一般来说比较成熟的有两种方法:
1是在应用层制定协议,发心跳包,这也是C#,JAVA等高级语言比较常用的方法。客户端和服务端制定一个通讯协议,每隔一定时间(一般15秒左右),由一方发起,向对方发送协议包;对方收到这个包后,按指定好的通讯协议回一个。若没收到回复,则判断网络出现问题,服务器可及时的断开连接,客户端也可以及时重连。
2通过TCP协议层发送KeepAlive包。这个方法只需设置好你使用的TCP的KeepAlive项就好,其他的操作系统会帮你完成。操作系统会按时发送KeepAlive包,一发现网络异常,马上断开。我就是使用这个方法,也是重点向大家介绍的。
使用第二种方法的好处,是我们在应用层不需自己定协议,通信的两端,只要有一端设好这个值,两边都能及时检测出TCP连接情况。而且这些都是操作系统帮你自动完成的。
八、体会和建议
通过这次课程设计,让我加深了对面向对象编程的了解,通过使用dephi编程,掌握了它的的基本应用,也懂得了要想熟练编程不是一朝一夕的事情,一份付出一份收获,只有加强以后的上机编程时间,才能让自己的编程能力的到进一步的提高。此外,利用Delphi 下的Socket 控件,可以很好地解决局域网内的实时通信问题,目前在各中小企事业单位中已经得到广泛应用. 系统具有良好的扩充性,例如可实现对信息及数据的加密,充分保障系统的安全性;可进行多媒体等文件的实时在线传输等
,具有较好的应用前景.
九、参考文献
[ 1] MARCO CANTU ,罗征. Delphi 7 从入门到精通[M] . 北京:电子工业出版社,2003.
[ 2] 方军,吴晓冰,沈金龙. 中间件TCP/ IP 网络接口的实现[J ] . 网络报,1999 , (19) :33234.
[ 3] 王红霞,姚家亮. 网络环境下基于Winsock 的进程通信方法[J ] . 计算机时代,2001 , (10) :26227.
[ 4] [M].第4 :电子工业出版社,-113.
[ 5 ]