基于socket的即时通讯软件_第1页
基于socket的即时通讯软件_第2页
基于socket的即时通讯软件_第3页
基于socket的即时通讯软件_第4页
基于socket的即时通讯软件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计(论文)题目:基于socket的即时通讯软件 系部: 专 业: 通信工程 学 生 姓 名: 班 级: 学号 指导教师姓名: 职称 最终评定成绩 xxx大学毕业设计(论文) 摘 要近些年来,随着计算机技术的飞快发展,尤其是计算机网络方面的发展,人们的生活得到了彻彻底底的改变,人们能以非常低廉的价格,甚至不用花钱,就可以用上更方便、更实用的网络通信软件。现在,网络上的在线服务系统多种多样,它们已经深深的影响并改变了人们的联系和交流方式,使得人们可以在千里之遥进行即时性的通讯。过去的种种陈旧的通讯方式,已经不能满足现代生活的需要。即时通讯软件作为一种方便人与人之间联系的实用工具应运而生,为我

2、们的学习和工作,带来了极大的方便,很大程度的提高了学习和工作效率。由于即时通讯软件的外观友好、使用非常方便,而且使用者之间的通讯是即时互动的特点,受到大多数人的喜欢,这一类通讯软件的应用市场特别广阔。现如今,很多的企业、机关、学校都纷纷建立起自己的局域网。于是我就想到做一个在局域网里的多功能通讯软件,在局域网里,我们可以通过它,实现在局域网里联络,消息的发布等。在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间即时性的联络,这样,不用上internet,可以节省资源。在学校这个大环境里,这个软件可以方便同学之间联系,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,与教师讨论

3、问题,并能最大限度地利用现有的网络资源,极大地提高工作效率。这个软件包括服务器程序和客户端程序,服务器包括聊天信息即时转发,发送通知,数据库备份还原及数据库的初始化等功能。客户端具有登陆,注册,修改个人信息,聊天等功能。关键词:vb,winsock,access,即时通讯软件abstract in recent years, along with the fast development of computer technology, especially the development of computer network, the life of people get a complet

4、e change, people can use more convenient and more practical network communication software with very low price, even no money. now, there are kinds of on-line service system,which have changed people's contact and communication, and make people can real-time communication over thousands of miles

5、 away. the past, old communication can't meet the need of modern life. instant messenger software as a convenient contact between the practical tools brought great convenience to our study and work, greatly improving the efficiency of work and study. because of its friendly outward appearance, t

6、he formidable function, the use convenience, the relation prompt and so on the characteristic wins modern people's favors, its application market is extremely broad.nowadays, a lot of enterprises, institutions and schools have set up their own lan. so i thought of making a different communicatio

7、ns software. we can achieve through it, the contact in lan, news release, etc. in the school campus, the establishment of the software can be conveniently between teachers and students, between the contact between teacher and students. we need not get on the internet. it can save resources. in the s

8、chool, this software c can make students convenient links. students can discuss problems with other students and teachers through it. this software can maximize existing network resources, greatly improving work efficiency. the software includes server program and client program. server includes rea

9、l-time chat message transmitting, database backup notification, and database of initialization functions. the client has login, registration, modify, chat, personal information functions.keywords: vb,winsock,access, instant messenger目 录 摘 要iabstractii第1章 绪论11.1课题的来源及意义11.2课题的目的11.3课题的内容1第2章 开发工具介绍22

10、.1 vb简介22.2 access简介4第3章 网络通讯程序的设计原理53.1 tcp/ip协议53.2 客户机/服务器模型6第4章 需求分析及开发方法84.1 需求分析84.2 系统功能模块84.3 系统功能需求图84.4 开发方法介绍9第5章 总体设计115.1 设计思想115.2 关键通信技术winsock11第6章 详细设计136.1 数据库设计136.1.1 系统数据流程图136.1.2 数据库逻辑结构设计136.2 各主要窗体及核心代码介绍146.2.1 密码模块146.2.2 数据初始化模块156.2.3 数据备份和还原模块176.2.4 查看服务器信息206.2.5 保存记录

11、以及查看记录206.2.6 更改管理员密码236.2.7 发布通知246.2.8 客户界面256.2.9 底层通讯设计30结 论33参考文献35附 录36致 谢37iv 毕业设计(论文)第1章 绪论1.1课题的来源及意义在网络无所不在的今天,在internet上,有qq、msn等网上寻呼软件,极大程度上方便了处于世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他的号码。现在,企业、机关、学校都纷纷建立起自己的局域网。在局域网里,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常

12、不方便的。首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且当局域网内的机器很多时,这种方式更加麻烦。于是,就想到做一个适用于局域网(校园网)的聊天工具,在局域网里,我们可以通过它实现局域网内方便的联络、进行消息的发布。在学校的校园网里,这软件可以起到方便同学之间、教师之间、师生之间相互联络的作用。这样,不用上internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率1。1.2课题的目的现在也有很多

13、在局域网上不使用服务器的通讯软件,比如飞鸽传书,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,可以保存用户的个人信息或介绍,供人查看。而且,不使用服务器的通讯软件,是以机器为通讯单元的,而有服务器的通讯软件是以人为通讯单元,可以明确联络的对象,准确的找到对方。总之,使用有服务器的通讯软件在局域网上通讯,会给我们带来更多的方便。1.3课题的内容这个基于socket技术的即时通讯软件是基于visual basic平台和access数据库设计的。软件的通讯协议是tcp/ip协议,并且采用socket套接字和客户端/服务器端(client/server)网络模型。采用原型法设计可以使

14、设计过程由浅入深,方便以后在功能上拓展软件。本软件在需求分析后,进行初步设计,再经过反复调试,实现了聊天的基本功能。第2章 开发工具介绍2.1 vb简介visual basic是一个功能强大的应用程序开发工具,在世界范围内得到了广泛的应用。它之所以受到人们的青睐的主要原因有:windows是当今主流操作系统,而visual basic是开发windows应用程序最简单易学的语言之一;visual basic引入了面向对象和事件驱动的程序设计思想,大大缩短了应用软件的开发周期;microsoft(微软)公司十分重视visual basic的功能扩充,不断地把最新技术运用到visual basic

15、中,使之可以完成几乎所有windows应用程序的开发任务;已有越来越多的优秀软件支持用visual basic进行二次开发2。 结 论经过两个月的设计和开发,基于socket的即时通讯软件基本开发完毕。其功能基本符合用户需求,能够完成即时通讯软件的各项功能。对于数据的一致性的问题也通过程序进行了有效的解决。但是由于毕业设计时间较短,所以该系统还有许多不尽人意的地方,用户界面不够美观等多方面问题,都有待进一步改善。本文重点讨论客户端/服务器的程序的设计方法和过程,对整个系统进行了详细设计,利用面向对象的方法,进行整个系统的设计。本文主要做了以下工作:(1) 列举了即时通讯软件的系统和界面需求。(

16、2) 陈述了客户端/服务器程序的设计原理和过程(3) 根据系统需求,进行整个系统的各个部分的详细设计。在调试程序的时候,遇到了很多问题。比如 ,服务器不能向各客户广播消息的问题 ,经过反复调试、分析 ,发现各客户已经接收了消息 ,只不过是系统忙于服务器和各客户的连接而顾不上显示所致 ,在需要系统停下来做他事情的位置添加了一个 doevents 函数, 参考文献 1汪保平. 用vb实现聊天讨论室和点对点会话. 电脑编程技巧与维护, 1999:1-3.2林永等.visual basic 6.0用户编程手册.人民邮电出版社 2002:35-38,71.3刘炳文等.visual basic 6.0 程

17、序设计教程.清华大学出版社 2000:19-21.12高春艳.visual basic数据库开发关键技术.人民邮电出版社 2004:29-30.附 录 timer控件的灵活使用:timer控件可以用作事件的循环,用以检查连接状态,一旦连接断开,可以自动进行重连。也可以做计时器用,在连了很长时间仍然没连接上的时候,自动断开连接,提示用户重新连接,这个时间量由用户在控件的interval属性设置。还可以将很多事件触发打包,这一系列的事件可以一个timer控件囊括,使用时候驱动这个timer控件即可。在本程序中这些都得到体现,比如实现了限制同一ip地址连续注册id号的功能。致 谢时光流逝,历经几个月

18、的毕业设计接近了尾声,我在期间学到了许多新知识,课题分析与设计工作从开题到顺利完成,大到总体框架,小到某些细节的推敲,自始至终都受到xx老师的细心指导和关怀。张老师渊博的知识和诲人不倦的教诲使我受益匪浅,严谨的态度及孜孜不倦的研究作风是我今后工作和学习的楷模。我非常感激张老师一直以来对我的帮助和教育,在这里我表示诚挚的感激。 11 第二部分 外文资料翻译windows sockets 2.0: write scalable winsock apps using completion ports(excerpts)one of the most common things a server do

19、es is accept connections from clients. the acceptex function is the only winsock api capable of using overlapped i/o to accept connections on a socket. the interesting thing about acceptex is that it requires an additional socket as one of the parameters to the api. in a normal, synchronous accept f

20、unction call, the new socket is the return value from the api. however, since acceptex is an overlapped operation, the accepted socket must be created (but not bound or connected) in advance, and passed to the api. a typical psuedocode snippet that uses acceptex might look like the following: do -wa

21、it for a previous acceptex to complete -create a new socket and associate it with the completion port -allocate context structure etc. -post an acceptex request.while(true); 用完成端口开发大响应规模的winsock应用程序(节选)服务器要做的最普通的事情之一就是接受来自客户端的连接请求。在套接字上使用重叠i/o接受连接的惟一api就是acceptex()函数。有趣的是,通常的同步接受函数accept()的返回值是一个新的套

22、接字,而acceptex()函数则需要另外一个套接字作为它的参数之一。这是因为acceptex()是一个重叠操作,所以你需要事先创建一个套接字(但不要绑定或连接它),并把这个套接字通过参数传给acceptex()。以下是一小段典型的使用acceptex()的伪代码: do -等待上一个 acceptex 完成 -创建一个新套接字并与完成端口进行关联 -设置背景结构等等 -发出一个 acceptex 请求while(true);作为一个高响应能力的服务器,它必须发出足够的acceptex调用,守候着,一旦出现客户端连接请求就立刻响应。至于发出多少个acceptex才够,就取决于你的服务器程序所期待的通信交通类型。比如,如果进入连接率高的情况(因为连接持续时间较短,或者出现交通高峰),那么所需要守候的acceptex当然要比那些偶尔进入的客户端连接的情况要多。聪明的做法是,由应用程序来分析交通状况,并调整acceptex守候的数量,而不是固定在某个数量上。 对于windows2000,win

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论