文档库 最新最全的文档下载
当前位置:文档库 › 基于socket的即时通讯软含外文翻译参考毕业论文设计

基于socket的即时通讯软含外文翻译参考毕业论文设计

毕业设计(论文)

摘要

近些年来,随着计算机技术的飞快发展,尤其是计算机网络方面的发展,人们的生活得到了彻彻底底的改变,人们能以非常低廉的价格,甚至不用花钱,就可以用上更方便、更实用的网络通信软件。现在,网络上的在线服务系统多种多样,它们已经深深的影响并改变了人们的联系和交流方式,使得人们可以在千里之遥进行即时性的通讯。过去的种种陈旧的通讯方式,已经不能满足现代生活的需要。即时通讯软件作为一种方便人与人之间联系的实用工具应运而生,为我们的学习和工作,带来了极大的方便,很大程度的提高了学习和工作效率。由于即时通讯软件的外观友好、使用非常方便,而且使用者之间的通讯是即时互动的特点,受到大多数人的喜欢,这一类通讯软件的应用市场特别广阔。

现如今,很多的企业、机关、学校都纷纷建立起自己的局域网。于是我就想到做一个在局域网里的多功能通讯软件,在局域网里,我们可以通过它,实现在局域网里联络,消息的发布等。在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间即时性的联络,这样,不用上Internet,可以节省资源。在学校这个大环境里,这个软件可以方便同学之间联系,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,与教师讨论问题,并能最大限度地利用现有的网络资源,极大地提高工作效率。这个软件包括服务器程序和客户端程序,服务器包括聊天信息即时转发,发送通知,数据库备份还原及数据库的初始化等功能。客户端具有登陆,注册,修改个人信息,聊天等功能。

关键词: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 complete 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 , and make people can real-time communication over thousands of miles 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, the 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 LAN. So I thought of making a different communications 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 school, 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 real-time chat message transmitting, database backup notification, and database of initialization functions. The client , registration, modify, chat, personal information functions.

Keywords:VB,Winsock,Access, Instant Messenger

目录

摘要 .................................................................. I ABSTRACT............................................................. I I 第1章绪论 .. (1)

1.1课题的来源及意义 (1)

1.2课题的目的 (1)

1.3课题的内容 (1)

第2章开发工具介绍 (2)

2.1 VB简介 (2)

2.2 Access简介 (4)

第3章网络通讯程序的设计原理 (5)

3.1 TCPIP协议 (5)

3.2 客户机服务器模型 (6)

第4章需求分析及开发方法 (8)

4.1 需求分析 (8)

4.2 系统功能模块 (8)

4.3 系统功能需求图 (8)

4.4 开发方法介绍 (9)

第5章总体设计 (11)

5.1 设计思想 (11)

5.2 关键通信技术-Winsock (11)

第6章详细设计 (13)

6.1 数据库设计 (13)

6.1.1 系统数据流程图 (13)

6.1.2 数据库逻辑结构设计 (13)

6.2 各主要窗体及核心代码介绍 (14)

6.2.1 密码模块 (14)

6.2.2 数据初始化模块 (15)

6.2.3 数据备份和还原模块 (17)

6.2.4 查看服务器信息 (20)

6.2.5 保存记录以及查看记录 (20)

6.2.6 更改管理员密码 (23)

6.2.7 发布通知 (24)

6.2.8 客户界面 (25)

6.2.9 底层通讯设计 (30)

结论 (33)

参考文献 (35)

附录 (36)

致谢 (37)

第1章绪论

1.1课题的来源及意义

在网络无所不在的今天,在Internet上,有QQ、MSN等网上寻呼软件,极大程度上方便了处于世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了网,打开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他的号码。

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

1.2课题的目的

现在也有很多在局域网上不使用服务器的通讯软件,比如飞鸽传书,这种软件小巧且方便,也能解决一部分问题。但是有服务器的通讯软件,可以保存用户的个人信息或介绍,供人查看。而且,不使用服务器的通讯软件,是以机器为通讯单元的,而有服务器的通讯软件是以人为通讯单元,可以明确联络的对象,准确的找到对方。总之,使用有服务器的通讯软件在局域网上通讯,会给我们带来更多的方便。

1.3课题的内容

这个基于socket技术的即时通讯软件是基于Visual Basic平台和Access数据库设计的。软件的通讯协议是TCPIP协议,并且采用socket套接字和客户端服务器端(ClientServer)网络模型。采用原型法设计可以使设计过程由浅入深,方便以后在功能上拓展软件。本软件在需求分析后,进行初步设计,再经过反复调试,实现了聊天的基本功能。

第2章开发工具介绍

2.1 VB简介

Visual Basic是一个功能强大的应用程序开发工具,在世界范围内得到了广泛的应用。它之所以受到人们的青睐的主要原因有:Windows是当今主流操作系统,而Visual Basic是开发Windows应用程序最简单易学的语言之一;Visual Basic引入了面向对象和事件驱动的程序设计思想,大大缩短了应用软件的开发周期;Microsoft(微软)公司十分重视Visual Basic的功能扩充,不断地把最新技术运用到Visual Basic中,使之可以完成几乎所有Windows应用程序的开发任务;已有越来越多的优秀软件支持用Visual Basic 进行二次开发[2]。

【原文已删除,如需完整论文,加QQ:详谈】

【通信工程本专科毕业论文修改与拟稿组】<共1万5千字左右>

结论

经过两个月的设计和开发,基于socket的即时通讯软件基本开发完毕。其功能基本符合用户需求,能够完成即时通讯软件的各项功能。对于数据的一致性的问题也通过程序进行了有效的解决。

但是由于毕业设计时间较短,所以该系统还有许多不尽人意的地方,用户界面不够美观等多方面问题,都有待进一步改善。

本文重点讨论客户端服务器的程序的设计方法和过程,对整个系统进行了详细设计,利用面向对象的方法,进行整个系统的设计。

本文主要做了以下工作:

(1)列举了即时通讯软件的系统和界面需求。

(2)陈述了客户端服务器程序的设计原理和过程

(3)根据系统需求,进行整个系统的各个部分的详细设计。

在调试程序的时候,遇到了很多问题。比如,服务器不能向各客户广播消息的问题,经过反复调试、分析,发现各客户已经接收了消息,只不过是系统忙于服务器和各客户的连接而顾不上显示所致,在需要系统停下来做他事情的位置添加了一个Doevents 函数,

参考文献

[1]汪保平. 用VB实现聊天讨论室和点对点会话[J]. 电脑编程技巧与维护, 1999:1-3.

[2]林永等.Visual Basic 6.0用户编程手册[M].人民邮电出版社2002:35-38,71.

[3]刘炳文等.Visual Basic 6.0 程序设计教程[M].清华大学出版社2000:19-21.. [12]高春艳.Visual Basic数据库开发关键技术[M].人民邮电出版社2004:29-30.

附录

Timer控件的灵活使用:

Timer控件可以用作事件的循环,用以检查连接状态,一旦连接断开,可以自动进行重连。也可以做计时器用,在连了很长时间仍然没连接上的时候,自动断开连接,提示用户重新连接,这个时间量由用户在控件的interval属性设置。还可以将很多事件触发打包,这一系列的事件可以一个timer 控件囊括,使用时候驱动这个timer控件即可。在本程序中这些都得到体现,比如实现了限制同一IP 地址连续注册ID号的功能。

致谢

时光流逝,历经几个月的毕业设计接近了尾声,我在期间学到了许多新知识,课题分析与设计工作从开题到顺利完成,大到总体框架,小到某些细节的推敲,自始至终都受到XX老师的细心指导和关怀。张老师渊博的知识和诲人不倦的教诲使我受益匪浅,严谨的态度及孜孜不倦的研究作风是我今后工作和学习的楷模。我非常感激张老师一直以来对我的帮助和教育,在这里我表示诚挚的感激。

【原文已删除,如需完整论文,加QQ:详谈】

【通信工程本专科毕业论文修改与拟稿组】<共1万5千字左右>第二部分外文资料翻译

Windows Sockets 2.0: Write Scalable Winsock Apps Using

Completion Ports(excerpts)

One of the most common things a server does is accept connections from clients. The AcceptEx function is the only Winsock API capable of using overlapped IO 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 function 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 {

-Wait 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);

【原文已删除,如需完整论文,加QQ:详谈】

【通信工程本专科毕业论文修改与拟稿组】<共1万5千字左右>

用完成端口开发大响应规模的Winsock应用程序(节选)

服务器要做的最普通的事情之一就是接受来自客户端的连接请求。在套接字上使用重叠IO接受连接的惟一API就是AcceptEx()函数。有趣的是,通常的同步接受函数accept()的返回值是一个新的套接字,而AcceptEx()函数则需要另外一个套接字作为它的参数之一。这是因为AcceptEx()是一个重叠操作,所以你需要事先创建一个套接字(但不要绑定或连接它),并把这个套接字通过参数传给AcceptEx()。以下是一小段典型的使用AcceptEx()的伪代码:

do {

-等待上一个 AcceptEx 完成

-创建一个新套接字并与完成端口进行关联

-设置背景结构等等

-发出一个 AcceptEx 请求

}while(TRUE);

作为一个高响应能力的服务器,它必须发出足够的AcceptEx调用,守候着,一旦出现客户端连接请求就立刻响应。至于发出多少个AcceptEx才够,就取决于你的服务器程序所期待的通信交通类型。比如,如果进入连接率高的情况(因为连接持续时间较短,或者出现交通高峰),那么所需要守候的AcceptEx当然要比那些偶尔进入的客户端连接的情况要多。聪明的做法是,由应用程序来分析交通状况,并调整AcceptEx守候的数量,而不是固定在某个数量上。

对于Windows2000,Winsock提供了一些机制,帮助你判定AcceptEx的数量是否足够。这就是,在创建监听套接字时创建一个事件,通过WSAEventSelect()这个API并注册FD_ACCEPT事件通知来把套接字和这个事件关联起来。一旦系统收到一个连接请求,如果系统中没有AcceptEx()正在等待接受连接,那么上面的事件将收到一个信号。通过这个事件,你就可以判断你有没有发出足够的AcceptEx(),或者检测出一个非正常的客户请求(下文述)。这种机制对Windows NT 4.0不适用。

使用AcceptEx()的一大好处是,你可以通过一次调用就完成接受客户端连接请求和接受数据(通过传送lpOutputBuffer参数)两件事情。也就是说,如果客户端在发出连接的同时传输数据,你的AcceptEx()调用在连接创建并接收了客户端数据后就可以立刻返回。这样可能是很有用的,但是也可能会引发问题,因为AcceptEx()必须等全部客户端数据都收到了才返回。具体来说,如果你在发出AcceptEx()调用的同时传递了lpOutputBuffer参数,那么AcceptEx()不再是一项原子型的操作,而是分成了两步:接受客户连接,等待接收数据。当缺少一种机制来通知你的应用程序所发生的这种情况:

“连接已经建立了,正在等待客户端数据”,这将意味着有可能出现客户端只发出连接请求,但是不发送数据。如果你的服务器收到太多这种类型的连接时,它将拒绝连接更多的合法客户端请求。这就是黑客进行“拒绝服务”攻击的常见手法。

要预防此类攻击,接受连接的线程应该不时地通过调用getsockopt()函数(选项参数为SO_CONNECT_TIME)来检查AcceptEx()里守候的套接字。getsockopt()函数的选项

相关文档