毕业设计(论文)基于socket的文件传输系统_第1页
毕业设计(论文)基于socket的文件传输系统_第2页
毕业设计(论文)基于socket的文件传输系统_第3页
毕业设计(论文)基于socket的文件传输系统_第4页
毕业设计(论文)基于socket的文件传输系统_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、密 级 公 开 学 号 xx学院毕业论文(设计)基于socket的局域网文件传输系统 论文作者指导教师所属学院专业本科专科年级论文提交日期论文答辩日期xxxxxx数学与计算机学院计算机科学与技术本科2007级2011年5月20日2011年5月 28日 毕业论文(设计)学术承诺本人郑重承诺:所呈交的毕业论文是本人在导师指导下进行的研究工作及取得的研究成果.除了文中特别加以标注和致谢的地方外,论文中不存在抄袭情况,论文中不包含其他人已经发表的研究成果,也不包含他人或其他教学机构取得的研究成果.作者签名: 日 期: 毕业论文(设计)使用授权的说明本人了解并遵守衡水学院有关保留、使用毕业论文的规定。即

2、:学校有权保留或向有关部门送交毕业论文的原件或复印件,允许论文被查阅和借阅;学校可以公开论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文及相关资料。作者签名: 指导教师签名: 日 期: 日 期: 基于socket的局域网文件传输系统摘 要:文件传输是通过一条网络连接从远地站点向本地主机复制文件。当前internet上有着各种文件传输文件,例如qq等。但大多数是需要远地服务器控制的。因此对于一些仅需在局域网内部完成的传输工作存在着风险和资源浪费。基于socket的局域网文件传输系统是用java语言在myeclipse for spring 8.6环境下开发完成的一种适用于局域网的内

3、部文件传输系统。它具有聊天和文件传输两个功能,可满足校园网等小范围内的日常工作和学习。客户端双方及服务器在tcp协议基础上建立socket连接之后,客户端可以从服务器上获取其它登陆用户的用户名和ip地址等信息,在用户通讯前彼此的客户端还应该进行连接,它们之间的具体通讯过程是不需要通过服务器的点对点通讯。关键词:java;点对点;socket连接 title: the design and implementation of file transfer system based on lanabstract: file transfer copy files from the remote si

4、te to the local host through a network connection. the internet has various file transfer documents, such as qq, etc. but most remote server control is required. so for some internal completed only in the local area network transmission there is a risk and waste of resources. based on the lan socket

5、 with file transfer system is in myeclipse for java language are completed under the environment of 8.6 development which is suitable for lan internal documents transmitting system. it has a chat and file transfer two functions, can meet the campus network and other small range of daily work and stu

6、dy. the client and server in both parties based on tcp protocol after socket connection from the server, the client can obtain other landing users user name and ip address and other information, in user communication before each others client should also connects, the specific communications between

7、 them is not to need to process through the servers peer-to-peer communication.keywords: java; peer-to-peer; socket connection 目 录abstract:ii1 绪论11.1选题背景11.2选题意义11.3 前人的工作成果11.4 本文的主要工作22开发环境和相关技术简介32.1 myeclipse及myeclipse for spring32.2tcpip协议简介42.3基于socket的java网络编程技术介绍42.3.1什么是socket42.3.2socket的运

8、行机制图52.3.3如何进行socket编程53 设计方案介绍73.1系统需求分析73.2服务器、客户器功能介绍83.2.1服务器功能介绍83.2.2客户端功能介绍94实现过程分析114.1系统通讯过程流程图114.2服务器、客户端通讯过程设计分析114.2.1服务器端分析114.2.2客户端分析145 软件运行测试图175.1服务器运行测试175.2客户端运行测试17结语22参考文献23致 谢24附录2配置及安装说明25附录2源代码261 绪论1.1选题背景当今世界科学技术飞速发今天,借助于网络进行信息资源交流给人们带来了极大的方便。各种文件传输系统都已被广大用户接受。比如qq、uc、int

9、ernet邮件等互联网上的文件传输。甚至需要花费大量的金钱购买各种移动磁盘或者其他局域网内连接主机的硬件设备。而达到的效果却总是因为传输效率以及安全威胁而受到很大的限制。在这种形势下,开发一个功能简单而实用,能在windows操作系统中运行,并且具有可移植性的局域网内文件传输工具势在必行。1.2选题意义随着网络通信技术的发展与用户需求日益多样化,现代局域网络正处在变革与发展之中,本课题的主要目的之一是为了更清晰地培养学生掌握科学研究方法的能力和使学生迅速体会文件传输系统的研发过程。基于局域网的文件传输系统能够让家庭网络以及各个企业等局域网对内部资料有一个快捷,准确,安全的共享。特别是对如今较大

10、系统研发的模块分工合作得到了绝对保密性,从而使各项工作有计划、更科学的进行及顺利完成,使企业的办事效率得到显著提高。文件传输系统主要功能是自动获取局域网内用户的主机名,ip地址以及工作组名字,最终以c/s模式通过tcp/ip协议实现点到点文件传输功能。本系统既锻炼了我们的实际动手能力,使我们将大学四年所学的理论知识与实际开发相结合,又引导我们进行了一次模拟实际产品的开发,对于我们以后工作能力的培养具有重要的意义。1.3 前人的工作成果目前,国内外企业对局域网的文件传输系实践上都还不够完善。文件传输系统由于比较复杂,可变因素较多,安全性低,因此发展还不成熟。但是随着科学技术的发展,各为中心的资源

11、共享系统也即将进入高速发展期。在国内,随着企业资源管理的规范化和规模的不断扩大,企业的计算机资源管理将不仅仅停留在依靠硬件或者internet网络获取,而且将会向着安全的内部网络化资源管理方式迈进。在此之前,人们已经在网络通信这个问题上做了许多的工作,开发了大量的文档、程序和应用软件,如richard stevens的unix network programming介绍了在unix操作系统下通过socket实现网络通信的基本原理及实现方式,microsoft的windows sockets api提供了一种快速编程实现socket网络通信的机制。前人的这些工作无疑为我们提供了宝贵的经验和快速的

12、开发方法以及现成的开发实例。然而,前人已有的工作成果已经无法完全满足我们的需求,即提供一种基于socket的,易于使用具有高度可定制性的,面向中小企业内部通信需求的局域网通信软件。1.4 本文的主要工作论文主要针对公司或其他小范围内部局域网落设计出一种方便使用的、高性能的、并满足其基本通信需求的局域网文件传输系统(包含文件传输和聊天部分)。客户端与服务器端可以在多种硬件平台上运行,具有较好好的兼容性能。目前我们将通过在tcp/ip协议之上建立一个功能简单的文件传输系统(包含文件传输和聊天部分), 日后程序功能将可以继续扩展, 逐步发展成一个功能比较完整的大型文件传输系统,例如加上文件续传功能,

13、客户端连接发展成多对多连接,服务器增加为客户深一步服务(如发布一些消息)的功能等。2开发环境和相关技术简介2.1 myeclipse及myeclipse for springmyeclipse企业级工作平台(myeclipse enterprise workbench ,简称myeclipse)是对eclipse ide的扩展,利用它我们可以在数据库和j2ee的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的j2ee集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持html, struts, jsf, css, javascript, sql, hiber

14、nate。在结构上,myeclipse的特征可以被分为7类:1. j2ee模型2. web开发工具3. ejb开发工具4. 应用程序服务器的连接器5. j2ee项目部署服务6. 数据库服务7. myeclipse整合帮助对于以上每一种功能上的类别,在eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。myeclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,myeclipse是eclipse的插件,也是一款功能强大的j2ee集成开发环境,支持代码编写、配置、测试以及除错。而myeclipse for spring是在mye

15、clipse的基础上,加强了对spring的支持。myeclipse for spring 是myeclipse家族的成员之一,其最大的特点就是提 供了更强悍的针对spring框架的支持。其实在myeclipse 中已经提供了针对spring框架的一些支持,集成了spring ide,但是这些对于那些针对spring开发的开发者来说或许还不足够,他们需要的是更强大,更有针对性的开发工具。由于spring的广泛使用以及 spring开发者的呼声高涨,myeclipse for spring 随之出现。myeclipse for spring 提供对spring mvc的强大支持功能,针对spri

16、ng的更专业的编辑器,以及针对spring项目的项目创建向导等功能,让spring开发者可以更轻松的通过 myeclipse for spring 快速创建一个基于spring的应用。除此之外myeclipse for spring 8.5也提供了myeclipse 8.5几乎全部特性支持,这让myeclipse for spring 比myeclipse几乎是有过之而无不及。整合ssh有手动的有自动的,要想彻底掌握,建议一个框架一个框架的学习,学习完三个框架自然就会整合了。2.2tcpip协议简介tcp/ip(传输控制协议/网际协议)是网络中使用的基本通信协议。虽然从名字上看tcp/ip包括

17、两种协议,即传输控制协议(tcp)和网际协议(ip),但是tcp/ip实际上是一组协议4。它是异构网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。 tcp/ip已成为当今计算机网络最成熟、应用最广的互联协议。internet采用的就是tcp/ip协议,网络上各种各样的计算机上只要安装了tcp/ip协议,它们之间就能相互通信。运行tcp/ip协议的网络是一种采用包(分组)交换网络。基于tcp/ip的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互连层、传输层(主机到主机)、和应用层。应用层对应于osi参考模型的高层,为用户提供所需要的各种服务,例如:ftp、tel

18、net、dns、smtp等。传输层对应于osi参考模型的传输层,为应用层实体提供端到端的通信功能。该层定义了两个主要的协议:传输控制协议(tcp)和用户数据报协议(udp)。 tcp协议提供的是一种可靠的、面向连接的数据传输服务;而udp协议供的是不可靠的、无连接的数据传输服务。网际互联层主要解决主机到主机的通信问题。该层有四个主要协议:网际协议(ip)、地址解析协议(arp)、互联网组管理协议(igmp)和互联网控制报文协议(icmp)。 ip协议是网际互联层最重要的协议,它提供的是一个不可靠、无连接的数据报传递服务。网络访问层与osi参考模型中的物理层和数据链路层相对应。事实上,tcp/i

19、p本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与tcp/ip的网络访问层进行连接1。2.3基于socket的java网络编程技术介绍2.3.1什么是socket网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个socket。socket通常用来实现客户方和服务方的连接。socket是tcp/ip协议的一个十分流行的编程界面,一个socket由一个ip地址和一个端口号唯一确定。但是,socket所支持的协议种类也不光tcp/ip一种,因此两者之间是没有必然联系的。在java环境下,socket编程主要是指基于tcp/ip协议的网

20、络编程2。2.3.2socket的运行机制图一般而言,socket大部分应用于服务器与客户端的连接与通信,本系统虽然有服务器,但并不实际参与用户间的交流和文件传输,只起到辅助作用,所以在文件传输时客户端与客户端之间其实是互为服务器的,图2- 1是从服务器与客户端之间的关系来描述socket通信机制。图2- 2socket通讯机制2.3.3如何进行socket编程java在包中提供了两个类socket和serversocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类。 首先是socket类,其表示tcp连接的客户方,代表了通信的一方,常用的构造方法有:public soc

21、ket(ineraddress address,int port) throw ioexception3public socket(string host,int port) throws unknownhostexception,ioexception从上述定义克制,在引用socket构造方法是,需要指定两个参数,即“服务器”程序所在的ip地址和其监听的端口号。创建对象是若发生i/o错误,则构造方法需抛出ioexception异常。上述近视通信的一方即客户端,若要真正完成通信,还需要相应的、能更客户的请求作出响应的服务器程序.serversocket类是加吧网络api中提供的服务器功能的类,

22、常用构造方法为:public serversocket(int port) throws ioexception3该构造方法是常见一个serversocket对象,并绑定到所指定的端口上。有了该对象,就可以完成旗舰厅端口和等待连接的功能。3 设计方案介绍3.1系统需求分析现行业务系统描述:目前各种文件资源交流的主要方式可以分为三种:(1)通过局域网内主机之间以文件共享后再经过复制,粘贴方式实现。(2)依靠可移动磁盘的两次信息转移实现。(3)通过internet邮件方式实现。此三种方法并非不可行,但它们都需要花费较长的时间以及安全性也得不到保证,工作效率将在很大程度上受到限制。如果通过局域网内主

23、机之间复制粘贴来实现文件资源共享,将浪费大量的网络带宽,极大程度上影响了网内用户的工作效率,甚至导致用户不能正常工作;如果依靠移动磁盘实现文件的共享,将花费大量的金钱,而文件较大移动磁盘容量不足的情况下会令人极为头疼,何况移动磁盘是病毒传播的重要途径;如果通过internet邮件方式实现,用户需要接入internet服务器,这种方式对远程服务器有非常大的依赖性,即使1kb的文件都要经历极度繁琐的路径,不能彻底实现点对点的即时交流,文件较大的情况下就不言而喻了。最重要的是,在如今病毒黑客横行的网络世界中,信息的安全性也得不到保证。综上所述,依靠internet网络等方式实现文件资源交互的准确性,

24、快速性及安全性远达不到理想的要求。现行系统存在的主要问题分析:针对企业来说,提高工作效率是企业的一个重心;降低成本是企业赢取最大利益的重要方式;保证信息安全却是可能影响企业生死存亡的关键。企业需要对各种因素有足够深刻的认识才可能实现最终目标-盈利。而传统的文件资源交互方式却存在很多的问题,大致可以分为:一、不能有效地降低文件交互成本;二、文件交换过程过于繁琐;三、内部机密资料得不到安全保证;四、文件交互的准确性得不到更本保证。解决方案:解决当前问题的方案主要是指在允许的成本、性能要求下,分析系统实施的可行性,提出功能实现的依据,包括其简单性,安全性以及经济可行性。根据企业简单快速,安全的资源共

25、享等要求,提出以下四种解决方案:1)操作简单性方案:开发的系统需要有以下特点:windows友好的用户界面和系统快速的应用方法,简单易操作,不需对使用人员进行培训,可以使用户很好的掌握。对传输文件过程中的文件的载入设置都是非常简单可行,比如:如果用户忘记选择文件接收者的时候系统会自动提示“请选择接收用户”要求用户选择主机而不导致错误出现而引发的不便,这样就大大提高工作效率。而且开发的系统应该简单易操作,易维护,减少了不必要的麻烦。对于家庭局域网以及一些比较简单的中小企业网,系统必须做到在实际应用中较为成功。系统应为用户提供windows所一贯坚持的非常友好、操作简单的用户界面。2)传输安全性方

26、案:系统开发完成后,能有效地使内部资源与外网的完全隔离,从而保证了内部机密文件的安全性。3)经济可行性方案:系统开发完成必须作到提高文件共享效率,不管是在资金上还是效率上都能达到预期的效果的。最重要的一点就是:使用户避免花费高额的资金去购买各种移动磁盘甚至是通过internet邮件方式,使得用户方便的同时,也让信息少走了不少“弯路”。 4)快速准确性方案:鉴于系统的目标要求和特点,能够保证快速准确地实现文件共享。综合上述,本设计在windows xp操作系统下,以中文版myeclipse for spring为开发工具,以c/s为系统功能结构,基于点对点的tcp/ip协议理论,通过socket

27、套节字连接客户端与服务器实现文件及文件夹传输。彻底避免了文件交换过程与外部网络的接触,实现快速的文件资源共享。并能够确保内部文件的机密性,能够在很大程度上有效地提高工作效率。3.2服务器、客户器功能介绍3.2.1服务器功能介绍 本系统服务器的主要功能是供已登录用户获取其他登录用户的ip地址,并不真正参与客户端双方的语言交流与文件传输,也就是说当获取到要传送的对方ip之后,即使服务器关闭也不会影响此时的双方,双方依旧可以交流和传输文件;只不过其他用户要向某人传输文件时不能再简单的获取ip地址了。换句话说当已知对方ip之后即使不登陆服务器或登陆服务器失败照样也可以完成所有可以完成的操作。服务器登陆

28、界面如error! reference source not found.。图3- 1服务器界面 3.2.2客户端功能介绍客户端的程序是整个系统程序的核心,它提供了与另一端连接到交流、文件传输的所有功能。用户通过客户端程序登陆到服务器,从而获得已登录用户列表,选择要连接的用户名称,获取其ip地址,然后连接,最后与之进行交流或传输文件。若客户端因某些原因不能登录服务器,那么只要得到对方ip也照样可以与对方通讯。需要注意的是,本系统的连接属于单向连接,即a用户连接b用户之后,a可以对b进行单向信息传输,若b需要与与a通讯则b必须再与a连接。用户登陆界面如图3- 2登陆之后的客户端界面如图3- 3。

29、 图3- 4客户端登陆界面图3- 5客户端界面4实现过程分析4.1系统通讯过程流程图图4- 1系统通讯过程图注:图中箭头方向表示信息流向。4.2服务器、客户端通讯过程设计分析4.2.1服务器端分析服务器端主要由server.java, serveragentthread.java和serverthread.java三个类文件组成,完成与用户连接和监听已登录用户的功能。server.java文件主要是创建服务器的运行界面和创建并启动服务器线程完成把已接收到的登陆的客户端信息(用户名和ip地址)显示在服务器界面上。下边是此文件中获取用户信息并显示的函数。public void refreshlis

30、t()/更新在线用户列表的业务处理代码vector v=new vector();int size=this.onlinelist.size();for(int i=0;isize;i+)/遍历在线列表serveragentthread tempsat=(serveragentthread)this.onlinelist.get(i);string temps=tempsat.sc.getinetaddress().tostring();temps=temps+-+tempsat.getname()+ 上线;/获得所需信息v.add(temps);/添加到vector中this.jlusero

31、nline.setlistdata(v);/更新列表数据serveragentthread.java文件主要功能是获取套接字,创建输入输出流完成与客户端的具体链接和信息交流,即从客户端获取用户信息(包括用户名和ip地址)加入到用户列表中并刷新服务器上用户列表,同时把最新用户名列表发送给客户端,此外还要完成客户端发来的查找相应用户名的ip地址的请求。两个功能的主要函数如下:public void nick_name(string msg)trystring name=msg.substring(13);/获得用户的用户名this.setname(name);/用用户名称给该线程取名vector

32、v=father.onlinelist;/获得在线用户列表boolean ischongming=false;int size=v.size();/获得用户列表的大小for(int i=0;isize;i+)/遍历列表,查看是否已经有该用户名serveragentthread tempsat=(serveragentthread)v.get(i);if(tempsat.getname().equals(name)ischongming=true;/有重名,将标志位设为truebreak;if(ischongming=true)/如果重名dout.writeutf();/将重名信息发送给客户端d

33、in.close();/关闭数据输入流dout.close();/关闭数据输出流sc.close();/关闭socketflag=false;/终止该服务器代理线程else/如果不重名v.add(this);/将该线程添加到在线列表father.refreshlist();/刷新服务器在线信息列表string nicklistmsg=;size=v.size();/获得在线列表大小for(int i=0;isize;i+)serveragentthread tempsat=(serveragentthread)v.get(i);nicklistmsg=nicklistmsg+|+tempsat

34、.getname();/将在线列表内容住组织成字符串nicklistmsg=+nicklistmsg;vector tempv=father.onlinelist;size=tempv.size();for(int i=0;isize;i+)/遍历在线列表serveragentthread sattemp=(serveragentthread)tempv.get(i);sattemp.dout.writeutf(nicklistmsg);/将最新的列表信息发送到各个客户端if(sattemp!=this)/给其他客户端发送新用户上线的信息sattemp.dout.writeutf(+this.

35、getname()+上线了.);catch(ioexception e)e.printstacktrace();public void finduser(string msg)trysystem.out.println(msg:+msg);string name=msg.substring(7,msg.length();/获得接收方的名字vector v=father.onlinelist;/获得在线用户列表int size=v.size();/获得在线用户列表的大小for(int i=0;isize;i+)/遍历列表,搜索接收方serveragentthread sattemp=(serve

36、ragentthread)v.get(i);if(sattemp.getname().equals(name)/将该信息转发给接收方system.out.println(msg:+sattemp.sc.getinetaddress().tostring().substring(1);this.dout.writeutf(+sattemp.sc.getinetaddress().tostring().substring(1);break;catch(ioexception e)e.printstacktrace();4.2.2客户端分析客户端主要有clientagentthread.java,

37、receiverthread.java ,filesender.java和qqlogin.java三个类文件组成,完成与服务器及其他客户端连接并通讯的功能。clientagentthread.java文件主要完成与服务器的连接,向服务器发送自己的用户信息,接受服务器发来的用户名列表和向服务器发送获取特定用户ip的请求。主要功能函数如下:public clientagentthread(filesender father)this.father=father;trydin=new datainputstream(father.sc.getinputstream();/创建数据输入输出流dout=

38、new dataoutputstream(father.sc.getoutputstream();string name=father.jtfnickname.gettext().trim();/获得用户名dout.writeutf(+name);/发送用户名到服务器catch(exception e)e.printstacktrace();public void run()while(flag)trystring msg=din.readutf().trim();/获得服务器发来的信息if(msg.startswith()/收到重名的信息_chongming();else

39、if(msg.startswith()/收到用户名列表this.nick_list(msg);else if(msg.startswith()/当收到服务器离开的信息this.server_down();else if(msg.startswith()/当收到服务器发来的用户ip的信息this.set_sendip(msg);catch(exception e)e.printstacktrace();receiverthread.java文件主要完成数据的接受与计算数据传送的时间。filesender.java文件是此系统最核心的部分,完成客户端界面设计和客户端之间的连接与通讯(包括文字通讯和

40、文件传输)的所有功能功能,并有登陆界面的一些错误提示功能(如用户名不能为空等提示),是此系统最核心功能的表述。此文件中清晰表明了此系统的具体通讯过程是与服务器无关;文件传输是以字节流的方式进行的主要函数如下:5 软件运行测试图5.1服务器运行测试启动服务器:图5- 1服务器界面点击启动按钮:图5- 2启动服务器提示界面5.2客户端运行测试启动客户端并输入用户名服务器的ip:图5- 3客户端登陆界面点击登录:图5- 4客户端正常工作界面再按照前面步骤再启动一个客户端,并获取zsy用户的ip,之后点击链接并向对方发送字母d:图5- 5与其它客户端连接后界面此时zsy用户界面:图5- 6收到zsyz

41、sy信息界面再新建用户zsyzsy客户端界面点击发送文件:图5- 7zsyzsy选择发送文件界面选中要发送的文件,之后点击保存,双方界面如下:图5- 8zsyzsy发送文件界面图5- 9zsy收到zsyzsy发送文件请求界面在用户zsy界面上点击接受:图5- 10zsy保存接收文件路径选择界面选择路径后点击保存:图5- 11zsy接收成功界面结语1.特点本系统最大的特点就是结构简单。由于界面清晰、简洁、一目了然,从而使用户使用起来相当的方便,而且与internet上的类似软件相比,在一些条件上(如网络带宽等)会更加有利于小型局域网中人们的交流、工作。2.待解决问题本系统还有一个特点就是可扩展性

42、非常强。与原因相对,本系统的简单也显示出了缺点和待解决的问题:文件传输部分还存在着一些bug。文件传输部分的设计不支持断点续传的功能。当多个员工需要共同探讨问题或者相互传送文件时,本系统并不支持此功能。参考文献1 douglas e.comer.tcp/ip 网络互连m.北京:人民邮电出版社,2002.23.2 subrahmanyam allamaraju. java server programming: principles and technologiesm. 北京:机械工业出版社,2001,1-23. 3 bruce eckel. java编程思想m.北京:机械工程出版社, 2003

43、.12-16. 吕凤翥,马皓.java语言程序设计j.北京:清华大学出版社.2008.403-409.4 肖新峰,宋强,王立新.tcp/ip协议与网络管理j.背景:清华大学出版社,2009.185-259.5 douglas d.huston.java network programmingm.北京:清华大学出版社,2004.57.6 朱和平.即时通信研究综述j.现代计算机,2006,(12):55-58.7 刘培鹤,牛晓蕾,杜鹏,何文才,张媛媛.企业即时通信系统安全性分析与设计j.网络安全技术与应用,2007,(2):59-61.8 张效祥.计算机科学技术百科全书.北京:清华大学出版社,19

44、98.34-43.9 冯博,应群.面向对象的java网络编程m.北京:清华大学出版社, 2003.20-33.10 蒋东兴.windows sockets 网络程序设计大全m.北京:清华大学出版社,1999.74.11 赵双红,刘寿强,潘春华.p2p通信网络安全问题探析j.计算机安全,2003,(11):6-9.12 david iseminger.网络连接服务开发人员参考库m.北京:机械工业出版社,2001.9.13 donald e.knuth. the art of computer programmingm. 北京:人民邮电出版社,1998.87.14 萨师煊,王珊著.计算机网络概论j

45、.电脑信息报,2001.9-23.15 田文雅.程序设计j. 计算机时代,2001.9-21.16 bruce eckel. java编程思想m.北京:机械工程出版社, 2003.12-16.致 谢首先感谢我的导师杨金山,论文从选题、结构安排、文字处理直至最终定稿的全过程无一不是在杨老师的悉心指导、严格要求和亲切关怀下完成的。在本论文完稿之际,谨向所有给予我关心和帮助的人们致以我最诚挚的谢意。我的良师对本文的写作给予了极大的支持与精心的指导,提出了很多宝贵的论文整改意见,也做了大量的辅助工作,我谨向恩师深表谢意。恩师严谨求实的学风,孜孜不倦的精神,渊博的学识,深邃的思想,都深深的刻在我的心中,

46、在老师的教导下,我接受了全新的思想观念,树立了明确的学术目标,掌握了通用的研究方法。在此,我向帮助指导和培养我的导师致以崇高的敬意和衷心的感谢!我的周围是一群风华正茂的有志青年,他们的求知精神不断激励着我学习、钻研专业知识。在完成毕业论文的过程中很多同学都给予了我极大的帮助。最后,感谢我的家人和朋友,是你们在生活和学习上给了我巨大的鼓励和支持,我的学业得以顺利完成离不开你们的帮助和照顾。不管过去、现在、还是将来,家人和朋友永远是我坚强的后盾,也是我努力学习和勤奋工作的最大动力。附录2配置及安装说明配置:网上去下个jdk,安装好后,在我的电脑右键点开属性-高级-环境变量里面可以设置jdk安装,没

47、有设置好环境变量不能正常使用。在系统变量中找到classpath变量,点“编辑”,在原来的内容后面先写个分号,再写个小数点,再写个分号,然后再把你安装的bin文件的路径写上去,如c:program filesjavajdk1.6.0_10 bin 这样就把classpath变量设置好了。下一步再找到path变量,点“编辑”,也是在原内容后面写上分号点分号,然后把你安装的tools.jar文件的路径写上去,如c:program filesjavajdk1.6.0_10libtools.jar 这样就把path变量也设置好了,下一步是设置java_home变量,这个变量原来没有,所以得点“新建”,

48、在值中写入你安装的jdk的路径,如c:program filesjavajdk1.6.0_10。安装: 得到客户端和服务器的可执行文件后直接双击打开即可,无需安装。附录2源代码服务器:package hsnc;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import .*;import java.io.*;public class server extends jframe implements actionlistene

49、rjlabel jlport=new jlabel( 工作愉快);/创建提示输入端口号标签jlabel jlport1=new jlabel(衡水学院 祝您);jtextfield jtfport=new jtextfield(7777);/用于输入端口号的文本框jbutton jbstart=new jbutton(启动);/创建启动按钮jbutton jbstop=new jbutton(关闭);/创建关闭按钮jpanel jps=new jpanel();/创建一个jpanel对象jlist jluseronline=new jlist();/创建用于显示当前用户的jlistjscrol

50、lpane jspx=new jscrollpane(jluseronline);/将显示当前用户的jlist放在jscrollpane中jsplitpane jspz=new jsplitpane(jsplitpane.horizontal_split,jspx,jps);/创建jsplitpane对象serversocket ss;/声明serversocket引用serverthread st;/声明serverthread引用vector onlinelist=new vector();/创建存放当前在线用户的vector对象public server()this.initialcom

51、ponent();/初始化控件this.addlistener();/为相应的控件注册事件监听器this.initialframe();/初始化窗体public void initialcomponent()jps.setlayout(null);/设为空布局jlport.setbounds(40,180,100,20);jps.add(jlport);jlport1.setbounds(40,150,100,20);jps.add(jlport1);/添加用于提示输入端口号的标签this.jtfport.setbounds(85,20,60,20);this.jbstart.setbounds(50,50,80,20);jps.add(this.jbstart);/添加开始按钮 this.jbstop.setbounds(50,100,80,20);jps.add(this.jbstop);/添加关闭按钮this.jbstop.setenabled(false);/将关闭按钮设为不可用public void addlistener()this.jbstart.addactionlistener(this);/为开始按

温馨提示

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

评论

0/150

提交评论