基于TCP-IP的局域网聊天室的-设计与实现

上传人:文*** 文档编号:202573358 上传时间:2023-04-22 格式:DOC 页数:34 大小:1.20MB
返回 下载 相关 举报
基于TCP-IP的局域网聊天室的-设计与实现_第1页
第1页 / 共34页
基于TCP-IP的局域网聊天室的-设计与实现_第2页
第2页 / 共34页
基于TCP-IP的局域网聊天室的-设计与实现_第3页
第3页 / 共34页
点击查看更多>>
资源描述
基于TCP/IP的局域网聊天室的设计与实现摘 要随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。局域网的发展也同样迅速。很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET.因此基于局域网的即时通信工具,就这样应运而生了。所以本文提出了一个更加合理的设计,并在WINDOWS平台上加以了实现.在本实现内将客户端和服务端综合在一个程序之内,用多线程实现不同的并行任务。并进行了人性化的界面设计,使用起来更加简单方便,并且功能十分合理,又易于扩展以及个性化定制。本文通过局域网聊天系统来具体共享内存实现进程间的数据交换,利用windows消息机制实现进程间的同步,两种机制结合使用。局域网聊天室作为一种新型的聊天工具可以提供更为及时、可靠、突破了必须有外界网络接入等优点,具有极其广泛的发展前景。本文介绍了采用JAVA编程开发局域网聊天系统的一套比较常用的解决方案。采用TCP模式进行文字聊天, 在客户端之间点对点(C/C)的进行。本系统采用典型的C/S(客户端/服务器)的框架模式,在该方案中采用Socket(套接字)原理实现网络通信,最终实现了通过服务器中转的文字聊天、文件传输功能,从而大大降低了程序的开发难度。本系统主要包括登陆、聊天、好友列表和服务器管理几个部分。本系统从需求分析、系统的设计、功能的实现都严格遵循了软件工程设计的思想。【关键词】Socket;TCP/IP;C/S;局域网聊天室AbstractWith the development of computer network technology, a variety of Web-based applications also will be the birth, such as Internet-based information release, communications, data sharing, and so on. LAN development is quickly. Many government agencies, businesses, schools, are first linked together in a unified LAN, respectively connected to the INTERNET, LAN-based instant messaging tool, and thus came into being. In this paper, a more rational design, in WINDOWS platform to achieve integrated in this realization of the client and server in different parallel tasks within a program, multi-threaded. And the design of user-friendly interface, easy to use and very reasonable, and easy expansion and customization. LAN chat system to a specific shared memory data exchange between process and use the windows message mechanism to achieve inter-process synchronization, the two mechanisms used in conjunctionLAN chat room as a new chat tool that can provide the advantages of more timely, reliable, broke the need of outside network access, has a very wide range of development prospects.This article describes a JAVA Programming LAN chat system, a more common solution. TCP mode, text chat, peer-to-peer (C / C) between the client. The system uses the framework of a typical C / S (Client / Server) mode, the program using the Socket (socket) the principle of network communication, and ultimately the transit through the server, text chat, file transfer capabilities, which greatly reduces the difficulty of program development.The system includes landing, chat, friend lists, and server management of several parts. The system needs analysis, system design, the realization of functions strictly follow the idea of software engineering.【Key words】Socket;TCP/IP;C/S;Local Area Network Chat Roomii目 录第1章引言11.1课题背景11.2国内外研究现状21.3主要内容3第2章 局域网聊天室系统分析42.1系统需求分析42.1.1功能需求42.1.2系统基本流程图42.1.3性能要求52.1.4测试环境规定52.2可行性研究52.2.1成本可行性分析52.2.2技术可行性分析62.3系统开发环境的分析62.4数据流图62.4.1顶层数据流图62.4.2一层数据流图6第3章 系统设计73.1设计目标73.2构建开发环境73.3系统模块流程图83.4系统功能模块图9第4章 基于Eclipse的聊天室的分析与设计104.1 TCP套接字的运用104.2 TCP三次握手协议114.3程序结构114.3.1多用户在线方案114.3.2软件框架124.4代码实现124.4.1用户登陆模块124.4.2用户列表模块144.4.3文本聊天模块164.4.4文件传输模块18第5章 局域网聊天室系统测试215.1系统测试结果与分析215.1.1用户登陆以及用户列表215.1.2文本聊天225.1.3文件传输功能255.2本章小结26结束语.27参考文献.28致谢30II基于TCP/IP的局域网聊天室的设计与实现第1章 引言1.1课题背景近年来,随着全球信息化进程的不断发展,网络的发展也非常迅速。出于以快速、简洁、方便的处理各种日常工作事务的目的,越来越多的企业在其内部使用局域网来进行相应的工作。在内部局域网的帮助下,企业能够使信息流程简化,提高相互之间信息交换的速度,进而提高工作的效率。与此同时,随着互联网的发展,企业规模的扩大,业务量的增加,企业内部的信息越来越私密,企业只希望员工通过内部局域网进行沟通与交流,避免企业内部机密通过Internet泄露到外部,为了决上述矛盾,人们提出了开发局域网聊天软件的构想,通过局域网聊天软件,企业员工可以随时的进行即时消息传递,召开网络会议等,有利于提高工作效率,同时又保护了企业内部信息的安全。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。其中局域网聊天系统是一个重要组成部分,它为人们的交流提供了一个平台出于高效、快速地处理各种事务的作用1。 我在本文中将讨论一种基于TCP/IP使用Socket的局域网通信工具的设计与实现方法。基于Socket的局域网通信软件可以为企业原有的局域网提供一种安全、快速、良好的通信机制。它的实现过程只需要使用局域网聊天软件而不需要对企业的局域网现有的硬件进行改动,具有不需要支付其它的硬件花费的优点,它的使用可以降低局域网内部的通信负荷,进而提高局域网内部的使用效率,可以很好地实现企业内部局域网的各种通信需求2。基于Socket的局域网聊天工具是此类局域网聊天软件的具体实例之一,它很好地诠释了基于TCP/IP的Socket通信的原理,并且在企业内部教学、讨论、通讯等应用中都具有非常好的实用价值。它具有实时性,保密性好,占用服务器的吞吐能力低,宽带资源利用率低,方便编程实现等优点。基于TCP/IP使用Socket的局域网通信软件具有应用范围广阔的优点,不但可以处理传统上的简单的聊天通信需求,而且也能够扩展以适应新型的网络应用,如数据传输,网络教育等,拥有非常广阔的应用前景3。本系统采用多线程结构,线程是一个独立的执行流,是进程内部的一个独立的执行单元,相当于一个子程序,它对应于JAVA中的Thread类对象。单独一个执行程序运行时,缺省地包含了一个主线程,主线程以函数地址的形式出现,提供程序的启动点,当主线程终止时,进程也随之终止。根据实际需要,应用程序可以分解成许多独立执行的线程,每个线程并行的运行在同一进程中4。一个进程中的所有的线程都在此进程的虚拟地址空间中,进行使用该进程的系统资源和全局变量。操作系统给每个线程进行分配不同的CPU时间片,CPU只执行一个时间片内的线程,多于一个时间片的线程在执行时相应的线程在CPU内进行轮流执行,由于每个时间片时间很短,但是对于用户来说就像各个线程在计算机中的处理是并行的。操作系统是根据线程的优先级来安排CPU的时间,优先级高的线程要优先运行,优先级低的线程则等待高优先级的运行完之后再运行5。Windows提供了两种线程:工作线程(又称为后台线程)和用户界面线程。用户界面线程通常用来处理用户的输入并响应各种事件和消息,其实,应用程序的主执行线程Thread对象就是一个用户界面线程,当应用程序启动时自动创建和启动,同样它的终止也意味着该程序的结束,进程终止。工作线程用来执行程序的后台处理任务6。1.2国内外研究现状基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本,广域网上的即时通信工具,如今一般采用UDP或者 TCP协议体系来实现 ,开发技术已经比较成熟,比如较早的MSN,ICQ Messanger,Yahoo 通这些国外开发的产品,还有国产的有名的QQ,新浪UC,LAVA-LAVA等,这些工具统统都实现了广域网上的即时通信,尽管都是即时通信,实现了即时聊天,以及文件传输的主要功能,但是也各有各的特色,比如ICQ的巨大客户群,MSN的个性化表情,YAHOO通的易操作性等。而QQ也具有一个相当方便的屏幕截图功能,另外就是,所有上述软件都实现了网络即时的视频,语音聊天功能。这些软件,在使用方面各有特色,在实现方面也各有所长,但基于这些产品正在商业运营阶段,其实现方式属于商业机密,具体细节不可能得知,但是它在大的方面无非就是各种利用各种平台上的网络通信接口,建构基于下层TCP/IP,或者UDP/IP协议的软件产品。在局域网内,这些功能的实现跟广域网相比更加简单,因为局域网的网络结构本身比广域网要复杂,但是又可以借这些理解网络协议,以及网络通信工具的实现原理,所以仍然极具研究价值7。1.3主要内容本文主要内容是设计一个基于WINDOWS平台的局域网即时聊天工具,然后阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。第2章 局域网聊天室系统分析2.1 系统需求分析2.1.1 功能需求根据与广域网聊天工具如QQ、MSN等的对比,及对公司、学校等团体需求的了解,本局域网聊天室需要完成如下功能:1. 用户端之间的进行信息传递,这是需要实现的最基本的功能。2. 客户端之间能够进行文件传输,通过服务器,实现文件传输功能。使文件及时的在客户端之间传输。3. 在线用户主机名列表的显示和维护。及时实现在线用户主机的检查更新和维护。4. 在C/S模式中,客户端和服务器是相互分不开的。如果客户端启用后,首先查看服务端是否在线,如果在线则客户端进行顺利登录,如果不在线,提示登陆失败,点击确认退出登陆的客户端。在聊天的过程中,服务端会一直进行监听确认是否有客户端退出系统;如果监听不到某一个客户端的CS,则认为服务器已经下线,就需要提示用户并建议其退出,一段时间后如果客户端没有响应,则自动退出8。2.1.2 系统基本流程图图2-1 聊天系统工作流程图2.1.3 性能要求首先要求程序要完全可靠,可以应付种种由于系统问题产生的错误,比如初始网络失败,对方突然下线等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂清晰明白的提示信息。程序要有良好的容错性,当用户进行非法操作时或者系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。开发文档要有好的便于理解性,如果系统又要交由别人接手开发,或者自己由于种种原因需要进行二次开发,那么要保证以后能够清晰的理解整个系统的设计思路以及实现细节。要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的联系,以免维护困难。2.1.4 测试环境规定在开发完成以后,自己进行一个全面的测试。检测系统中存在的漏洞,进行修复。2.2可行性研究2.2.1成本可行性分析本系统是局域网聊天工具,适用于公司、学校、社团等团体局域网使用,故对硬件、网络等设备要求较低,从而经济成本很低,在未来真正作为企业使用时也没有很高的成本要求。现阶段,因为本软件只做开发学习使用,在校期间花费时间,在此期间通过自己学习和查阅图书以及询问老师获得相关知识和方法,并没有其他的支出,而且现阶段只做学习暂且不考虑经济成本及盈利问题。2.2.2技术可行性分析首先我已经搭建好开发所需要的软硬件平台,并进行了合理而完善的需求分析,做好了充分的前期准备工作,其次因为本程序的平台将基于WINDOWS,将要使用网络通信技术,而WINDOWS有完善成熟的网络通信接口,以及与JAVA开发环境的严密契合能力,加之相类似的更大规模的INTERNET通信工具产品也已有例在先,所以这个程序的开发可行性在技术上是完全可行的。2.3系统开发环境的分析系统采用JAVA作为开发语言、Eclipse作为开发工具,系统的设计从需求分析开始,就保证了系统的稳定性和可扩展性。JAVA语言是一种面向对象的编程语言,具有很好的移植性、并且更加的安全和并发性,这使得JAVA语言各线程能够并发进行。并且JAVA支持可视化图形界面,使得操作更加直观。2.4数据流图2.4.1顶层数据流图图2-2聊天系统顶层数据流图2.4.2一层据流图图2-3 聊天系统一层数据流图第3章 系统设计1233.1 设计目标同一个局域网中,如何根据自身业务的要求,量身定制,选择一套有效的局域网聊天室系统。如何来满足局域网内部用户的通讯要求,在考虑到网络传输实时性,这现代社会通讯所必需的。设计本系统时,分析网络承载、整个系统结构的组建等是实现局域网文字聊天所必需的。局域网聊天作为一种广泛的网络应用对其基础的承载网络环境的要求较低。局域网聊天的功能和应用效果体现在客户端,而服务器端则是必不可少的,对于系统的需求分析在系统设计的过程中应该明确、细致:1. 用户登录:设立一个服务器,实现多个用户及时通信。用户在登陆时候输入明确的用户名称,以便各用户之间能够识别。2. 文本聊天:聊天室的功能即所谓的群聊,聊天的内容所有的人都能够看到,保密聊天室的功能即所谓的私聊,只有聊天双方才能看到。用户还可以对字体进行修改。3. 文件传输:多线程,收发可随时进行,相互之间没有相互影响,文件传输速度快。3.2 构建开发环境硬件平台CPU:P41.8GHZ;内存:256MB以上软件平台操作系统:windows XP或window 7开发工具包:Eclipse开发环境:JVM分辨率:最佳效果1024*768像素3.3 系统模块流程图局域网聊天室文字聊天业务流程图如图3-1所示。开始连接服务器建立连接容许发送消息事件,启动服务器线程进行文字消息通信服务器同意连接?是否断开连接发送断开信号,关闭文本聊天终止YYNN图3-1系统文字聊天业务流程图发送文件的流程为:用户添加文件向接收端发送文件传输请求,如果同意接收后,则启动计时器,发送文件流,反馈状态,否则继续添加文件,重复操作。接收文件的流程为:服务器端执行接收线程,接收发送端传来的文件,并把它保存。局域网聊天室文件发送业务流程图如图3-2所示。图3-2系统文文件传输业务流程图3.4 系统功能模块图局域网聊天室功能模块图如图3-2所示:服务器端客户端客户端服务器记录用户登陆和显示当前在线用户主窗体用户登陆发消息对话框窗体N登陆验证发送消息Y发消息主体框对话框主体TCP/UDP协议3-3局域网聊天室功能模块第4章 基于Eclipse的聊天室的分析与设计4.1 TCP套接字的运用在文字聊天时,服务器端与客户端的连接是采用的TCP套接节进行连接。TCP套接字的使用如图4-1。创建Socket对象SocketServer来处理服务器端与客户端的连接,Socket是Windows Socket API的高层抽象。Socket通常和其他类类混合使用,这两个类负责数据的发送和接收17。要使用Socket对象,首先要调用构造函数,然后调用Create函数创建一个Socket9。Socket和TCP的工作流程如下图所示: 图4-1 TCP套接字的使用4.2 TCP三次握手协议 第一次握手:源主机通过发送一个数据帧来请求本次的连接。第二次握手:当目的主机收到源主机发送的这个请求帧之后,发送一个带有源端机连接序列号和本次连接序号的确认帧表示同意连接。第三次握手:源端机等待接收两次初始应答的序列号之后,就向目的主机发送一个带有两次连接序列号的确认10。具体过程如下:ACK=1第一次握手,主机A向主机B发送连接请求第二次握手,主机B收到主机A的请求,向主机A回发一个确认,同时向主机A发送一个连接请求第三次握手,主机A收到主机B发送的数据包在向主机B发送一个确认连接主机A 主机BSYN=1,SEQ=ACK=1,SYN=1,SEQ=aaaaaaaaaa图4-2 网络传输的三次握手4.3程序结构4.3.1多用户在线方案:采用客户端/服务器(C/S)的和JAVA中多线程结构模式。服务器通过监听来判断是否有客户端请求登陆并予以响应,而客户端则是在需要登陆时候提交登陆请求以便服务器进行监听。服务器通常情况下是始终运行的,用来监听各个网络端口,一旦收到客户端的请求,就需要立即启动一个进程来响应客户端的服务。于此同时,服务器还将继续监听服务的各个端口,以便后来的客户端也能及时的接收到响应。在这个过程中,很多线程被创建,线程的轮转是有时间片限定的,而这个时间片非常的小,对于客户端来说基本感觉不到,就像所有的线程都是在同时进行的10。多线程的工作原理如下图所示:图4-3 多线程在线4.3.2软件框架UsersSendOneSendAllFileTransUserListConnectClientServerTCP Socket图4-4 软件主题框架4.4代码实现4.4.1用户登陆模块图4-5用户登陆模块客户端登陆模块部分主要代码如下:class Connect extends JFrame implements ActionListener, ItemListener,public void link() throws Exception / 连接服务器hostName = hostText.getText().trim();port = Integer.parseInt(portText.getText();client = new Socket(hostName, port);/ 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。in = new BufferedReader(new InputStreamReader(client.getInputStream();out = new PrintWriter(client.getOutputStream();out.println(nameText.getText() + & + sex);out.flush();服务器端登陆模块部分主要代码如下:public static void addConnection(Socket s, ClientProc cp)if (connections = null)connections = new Vector();connections.addElement(s);if (clients = null)clients = new Vector();clients.addElement(cp);public static void deleteConnection(Socket s, ClientProc cp)throws IOExceptionif (connections != null)connections.removeElement(s);s.close();if (clients != null)clients.removeElement(cp);public static Vector getClients()return clients;4.4.2用户列表模块图4-6 在线好友主界面客户端用户列表部分代码如下:public void valueChanged(ListSelectionEvent e)/ 监听下拉列表的显示内容if (e.getSource() = peopleList)tryString select = (String) peopleList.getSelectedValue();if (select != null) / 确保选择非空String userInfo = select.split();String name = userInfo0.trim(); / 提取名字if (!name.equals(chf.myName) / 不能添加自己int count = chf.perponsComboBox.getItemCount();for (int i = 0; i count; i+)chf.perponsComboBox.setSelectedIndex(i);/ 选择第i项String strName = (String) chf.perponsComboBox.getSelectedItem();if (name.equals(strName) / 如果已经在列表中,就复合框中选中,所以要确保没有重名return;/ 如果没有添加,就会执行下面语句 添加chf.perponsComboBox.addItem(name); catch (Exception ee)System.out.println(发生错误 在valueChanged + ee);服务器端用户列表模块部分代码:public String getName()return name;public String getSex()return sex;public Socket getSocket()return s;private void updateList()/ 更新用户列表(即发送当前在聊天室的用户到新来的用户列表中)Vector cs = ChatServer.getClients();if (cs != null)for (Enumeration e = cs.elements(); e.hasMoreElements();)ClientProc cp = (ClientProc) e.nextElement();String exist_name = cp.getName();String exit_sex = cp.getSex();System.out.println(old + & + exist_name + & + exit_sex);out.println(old + & + exist_name + & + exit_sex);out.flush();4.4.3文本聊天模块图4-6 在线好友主界面客户端聊天模块部分代码:if (e.getSource() = sentButton)/ 如果监听到发送信息按钮被点击trymywords = inMsgField.getText();if (mywords.trim().length() != 0) / 不能发送空消息也不能都发空格if (withWho.equals(所有人)outmsg = mywords;/ 发送到服务器out.println(outmsg);out.flush();/ 显示到我的频道里面insert(myMsgArea, myName + : + mywords); else / 对某个人交谈outmsg = withWho + & + privateFalse + &+ withWho + & + mywords;if (privateTalkFlag)outmsg = withWho + & + privateTure + &+ withWho + & + mywords;insert(myMsgArea, 您对 + withWho + 说: + mywords); elseinsert(myMsgArea, myName + 对 + withWho + 说: + mywords);/ 发送到服务器out.println(outmsg);out.flush(); catch (Exception ee)ee.printStackTrace();insert(myMsgArea, 与服务器连接中断,请重新登录!); finallyinMsgField.setText(); / 清空输入框服务器端聊天模块部分代码:public static void sendAll(String s)if (connections != null)for (Enumeration e = connections.elements(); / Enumeration过时的接口,/ 可以用for each循环e.hasMoreElements();)tryPrintWriter pw = new PrintWriter(Socket) e.nextElement().getOutputStream();pw.println(s);pw.flush(); catch (IOException ex)ex.printStackTrace();System.out.println(s);/发送信息给单独一个人public static boolean sendOne(String name, String msg)if (clients != null)for (Enumeration e = clients.elements(); e.hasMoreElements();)ClientProc cp = (ClientProc) e.nextElement();if (cp.getName().equals(name)tryPrintWriter pw = new PrintWriter(cp.getSocket().getOutputStream();pw.println(msg);pw.flush();return true; / 返回值为真,找到了这个人可以进行聊天 catch (IOException ioe)ioe.printStackTrace();return false;/ 没有找到这个人,应该是此人已经退出了聊天室4.4.4文件传输模块图4-7 文件传输模块接受/绝决接受文件:if (e.getSource() = acceptfile)/ 接收文件传输按钮if (this.acceptfileArea.getText().length() = 0)this.insert(myMsgArea, 没有文件需要接受); elseString acpfile = filemsg.split(&);out.println(acceptfile + & + acpfile1);out.flush();acceptthread = new acceptfilethread();acceptboolean = true;/ String filepath = acpfile2;String filepath = D:a.rar;JFileChooser jfc = new JFileChooser();int result = jfc.showSaveDialog(this);File file = null;if (result = JFileChooser.APPROVE_OPTION)file = jfc.getSelectedFile();filepath = file.getPath();/ 可加弹出框选择保存路径hhhuyacceptthread.ipport(acpfile3, (Integer.parseInt(acpfile4),filepath);acceptfile.setEnabled(false);/ 防止重复点接收acceptthread.start();/ if (e.getSource() = refusefile)/ 拒绝文件传输按钮if (this.acceptfileArea.getText().length() = 0)this.insert(myMsgArea, 没有文件需要接收,拒绝无效); elseString acpfile = filemsg.split(&);out.println(refusefile + & + acpfile1);out.flush();this.insert(myMsgArea, 你取消了 + acpfile1 + 发来的文件);this.acceptfileArea.setText();acceptboolean = false;acceptfile.setEnabled(true);if (e.getSource() = sendfile)/ 发送文件按钮if (withWho.endsWith(所有人)this.insert(myMsgArea, 请选择要发送的目标); elsesendfilename = ;if (this.sendfileArea.getText().length() != 0)sendfilename = this.sendfileArea.getText();if (sendfilename.length() = 0)/ 没有获得需要发送的文件this.insert(myMsgArea, 没有文件发送,请选择欲发送的文件或将其拖入待发送文件框); else / 发送文件sendthread = new sendfilethread();sendboolean = true;sendfile.setEnabled(false);sendthread.start();if (e.getSource() = cancelsendfile)/ 取消文件发送按钮if (this.sendfileArea.getText().length() = 0)this.insert(myMsgArea, 没有文件发送,不需要取消); elsethis.insert(myMsgArea, 你取消了文件发送);this.sendfileArea.setText();if (this.sendboolean)out.println(cancelsendfile + & + withWho);out.flush();sendboolean = false; sendfile.setEnabled(true);第5章 局域网聊天室系统测试5.1系统测试结果与分析首先进行的测试为系统登录、合法性等操作方面的测试。1. 目的:测试系统登录、合法性检查等基本功能是否达到设计目的。 2. 内容:用户登录、合理性检查、合法性检查,系统操作界面显示控制。输入正确的用户名及服务器地址系统运行,达到设计目的,界面如图5-1所示。图5-1聊天功能测试5.1.1用户登陆以及用户列表个性登陆:登录框包含登陆用户名称,设置服务器和端口,选择性别。经测试功能正常,如图5-2所示:图5-2聊天登陆功能测试图5-3好友在线和显示功能测试5.1.2文本聊天1. 群聊功能:任意用户在编辑区编辑文字后点击发送,所有在线用户都能收到聊天内容。测试结果正常,如图5-4、5-5所示。5-4好友之间进行文字聊天功能测试5-5好友之间进行文字聊天收发功能测试2. 私聊功能:私聊:若在用户显示界面双击某位在线用户之后并且在聊天室最下面勾选私聊,则可以进行私聊。只有聊天双方在悄悄话界面看到自己的聊天内容。功能截图如图5-6、5-7所示:图5-6悄悄话聊天功能测试图5-7悄悄话聊天功能测试3. 字体设置:在编辑器录入文字时可对文字字体进行编辑。测试结果正常,如图5-8所示。图5-8文字字体设置功能测试5.1.3文件传输功能文件传输功能:用户在用户显示界面将文件拖入到文件传输框之中,点击文件传输按钮,便可进行文件传输,在传输时也可以点击取消按钮取消文件的传输。接收方看到有可以接受文件的提示后,点击文件接受,可以接受文件,也可以点击拒绝接受,拒绝文件的传输,经测试功能正常,如图5-9所示。图5-9文件传输功能测试1图5-10文件传输功能测试25.2本章小结经过对局域网聊天室的测试,基于时间关系,系统只有实现两个基本功能,正对这两个功能,进行测试后发现:局域网聊天室可以实现文字聊天的功能,而且能够快速便捷的传输消息。群聊区面板可以实现在线所有好友的聊天功能,悄悄话聊天面板实现俩人的快速聊天。文件传输模块可以实现客户端与客户端之间的文件传输功能,实现及时的文件传递和接受。系统可靠稳定运行,实现了局域网内的及时可靠的聊天功能。可以帮助企业实现在内部局域网的帮助下,通过局域网聊天软件,企业员工可以随时的进行即时消息传递,召开网络会议等,有利于提高工作效率,同时又保护了企业内部信息的安全。企业得以简化信息流程,提高信息交换的速度,从而提高工作效率,它为人们的交流提供了一个平台出于高效、快速地处理各种事务的作用。结束语经过两个多月的努力,基于TCP/IP的局域网聊天室系统设计的实现的问题及策略论文终于完成。在整个设计过程中,出现过很多的难题,但都在老师和同学的帮助下顺利解决了。把完成论文的过程总结如下:写论文是一个不断学习的过程,从开始选择论文题目到具体的系统的实现,再到认真参考资料写论文,这中间的每一步骤对我来说都有着重大的意义,是新的尝试与挑战,这是我在大学期间通过自己努力独立完成的一个项目。在完成系统和论文的过程中我学到了很多知识让我觉得非常踏实,从刚开始对局域网聊天室系统的了解不多,对JAVA,以及其它相关知识了解不是很熟悉,我通过了自己认真的学习和反复试验,并且求助于相关的资料书籍,在我头脑中逐步形成一个轮廓,进而通过多次实验使自己的系统一步步得以完善,每一次的改进都让我学习到很多东西,给我很大鼓励,每一次对系统的完善的成功都会让我兴奋很久也给了我动力让我继续学习、完善。我体会到了实践对于学习的重要性,以前只是学习相应的理论只是,很少经过实践,对知识的理解不深刻,通过这次的系统实现,真正理解到理论与实践并重的重要性。这次做论文的经历也会使我受益匪浅,我感受到做论文是要真真正正用心去做的一件事情,是自己通过自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。参考文献1 谢希仁计算机网络(第5版).北京:电子工业出版社,2008.2 叶志军.由浅入深Java2自学手册M.北京:人民邮电出版社,2004. 3 Warren W.Gay著.实战Linux Socket 编程. 西安电子科技大学出版社, 2002.4 Douglas E.Comer,David L.Stevens著.TCP/IP网络互连 第3卷 客户/服务器编程及应用Linux/POSIX Sockets版.人民邮电出版社, 2002. 5 David Iseminger著.网络连接服务开发人员参考库 第1卷 Windows Sockets和QOS.机械工业出版社,2001. 6 蒋东兴等著. Windows Sockets 网络程序设计大全.清华大学出版社,1999. 7 Bruce Eckel. Java编程思想M.北京:电子工业出版社,2006.8 Cay Horstmann,GaryCornell. Java2核心技术M.北京:机械工业出版社,2006.9 陈刚.Eclipse从入门到精通M.北京:清华大学出版社,2005.10 王森.快易通Java程序设计M.北京:北京大学出版社,2000.11 王森. Java语言程序设计M.北京:北京大学出版社,2005.12 周明天,汪文勇.TCP/IP网络原理与技术M,1997.13 程庆年.周洪林移动新业务前置查询系统整合的实现方法探讨J.移动通信,2010.8(2):1003-1008.14 李永茂网络化远程自动抄表系统的设计及实现J.现代电子技术,2010(19).15 高江锦银行通讯中间件的设计与实现J.乐山师范学院学报,2009(12).16 谭翀基于Socket的跨平台多服务器通信系统的设计与实现J.舰船电子工程,2009.9(3):1201-1205.17 刘钟涛,申康.Socket在数字图书馆中的应用J.河南图书馆学刊,2007.10(3):1001-1105.18 张明新其林计算机网络技术 M.重庆:重庆大学出版社,200l.19 鲁士文计算机通信日铬基础教程 M.北京:科学出艋牡,200020 鲁士文.计算机罔络协议和实现技术 M.北京:清华太学出版杜,2000.21 孙桂兰.电子商务网上书店系统.北京:人民邮电出版社,2004.22 Jalote P.Optimum control limits for employing statistical process control in software process.IEEE Trans on Software Engineering.2002,28(12).23 飞思科技产品研发中心. Java 2应用开发指南J. 北京:电子工业出版社, 2002.24 薛为民,夏文红,解仑.Java应用教程.北京:北京交通大学出版社,2005.致谢本论文是在我的指导老师的悉心指导和大力支持下完成的。自撰写论文以来,孙老师给予我细致而具体的指导,并且提出许多宝贵的意见与建议。让我深深的体会到了如何把自己所学过的专业知识与实际应用结合起来,懂得如何灵活运用自己所掌握的理论知识,通过本次毕业设计使自己的知识得以巩固和扩展。在毕业设计的实践中,特别是在收集资料、分析资料过程中掌握了一些分析问题、解决问题的能力,在这过程中也参考了别人的一些书籍和论文的思路,并应用到自己的设计中。当然,在这次设计中也有很多问题没有考虑彻底,在编写过程中遇到了很多困难,在老师和同学的帮助下,均一一克服了这些困难。这使我自己的动手能力得以增强。在专业知识方面,我学到了很多新的东西,也体会到了毕业设计不仅仅是简单的课程,它需要方方面面的考虑,同时也必须具备比较全面的知识。我要特别感谢我的指导老师孙晓飞,在我系统的实现阶段耐心而细致的对系统结构进行指导,在我论文的书写阶段不厌其烦的对我的论文进行查错与修正,使我在完成论文的同时也深受启发和教育,并且他的严谨的思维方式以及认真的工作态度使我受用良多。其次要感谢答辩组的各位老师对学生的指导和教诲,我也在努力的积蓄着力量,尽自己的微薄之力回报母校的培育之情,争取在社会上有所成就!29
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!