毕业设计论文局域网聊天系统
(完整版)基于winsock的局域网聊天室系统分析与毕业设计论文

北京联合大学-信息学院计算机网络实践报告木瓜Chat局域网聊天工具设计报告组长(学号):拉格木呷4组员(学号):高迪7张鹤轩7刘晓弟5版本号: 1.0时间:2015年1月8日摘要从实际应用系统的角度出发,以VB的网络技术为指导,结合现有软件的应用,编程实现基于Visual Basic的局域网络聊天工具。
该聊天工具具有聊天室聊天,一对一聊天,以及文件传输的功能。
该论文主要对当今主流的网络聊天软件的发展情况,与该软件相关的技术以及本设计的实现做一个详细的阐述:1. 计算机网络聊天工具,受到了用户的普遍爱好,它把人们带进了一个虚拟的网络世界,拉近了人们的距离。
从单一的文本聊天,到语音聊天以及到现在的图像、视频聊天、及时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它成为了人们通过因特网相互联系和娱乐的主要平台,这也是腾讯成功的原因。
2. 该聊天软件基于VB中的WinSock通信,在此基础上,实现一对一聊天、一对多聊天以及文件的传输。
3. 该聊天工具可以运行于任何安装了VB6.0和支持tcpip,upd,ftp协议的机器上。
4. 由于系统采用cs结构,客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该聊天工具的又一大关键之处。
5. 文件传输作为另一个独立的模块,大大拓展了该聊天工具的功能,其传输资料利用了原有的WinSock通信,关键需要同步双方的发送和接受线程。
局域网通讯(Local Network,简称LNLNIM)是指能够即时发送和接收互联网消息等的业务。
自2001年面世以来,特别是近几年的迅速发展,局域网通讯功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。
它不再是一个单纯的聊天工具,已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。
是一种终端连往即时通讯网络的服务。
网络聊天系统的设计与实现

网络教育学院本科生毕业论文(设计)题目:网络聊天系统的设计与实现学习中心:层次:专科起点本科专业:年级:年春/秋季学号:学生:指导教师:完成日期:年月日网络聊天系统的设计与实现内容摘要随着互联网技术的飞速发展,网络已经成为人们生活中不可缺少的一部分,通过网上聊天已经成为人与人之间的网络通信的聊天,交流和联系的一种方式。
因此,更多的网站开始提供在线聊天功能。
与此同时,以其方便,快捷,成本低的优势,聊天室众多企业的青睐,许多企业网站也加入了聊天室,从而促进消费者与消费者和消费者之间的通信模块。
本文是一个软件工程的在线聊天系统,专注于系统的开发,使用系统的分析,设计和思维测试软件工程知识来实现的描述,其中包括三个主要方面的软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码,测试)和运行维护。
通过运用软件工程知识处理实际,加强的问题,清晰,可靠的标准化,使得程序易于维护。
该软件使用JAVA编写,具有良好的兼容性,易于实现。
操作简单,使用方便结构简单,易于搜索,实用的聊天室。
关键词:网络;通信;套接字I网络聊天系统的设计与实现目录内容摘要 (I)引言 (4)1 概述 (5)1.1 课题研究背景和意义 (5)1.2 本文的主要内容及组织结构 (5)2 网络应用系统开发技术介绍 (7)2.1 TCP/IP协议概述 (7)2.2 客户/服务器模型 (7)2.3 Socket网络编程 (7)2.4 开发工具与运行环境 (8)2.5 其他技术 (8)3 网络聊天系统的分析与设计 (10)3.1 可行性分析 (10)3.2 需求分析 (10)3.3 系统总体设计 (11)3.3.1 系统架构模型 (12)3.3.2功能模块设计 (12)3.3.3系统通信设计 (12)3.3.4数据库设计 (13)4 网络聊天系统详细设计及实现 (14)4.1 服务器端设计与实现 (14)4.1.1 服务器等待连接进程/线程设计 (15)4.1.2 服务器处理客户端信息进程/线程设计 (16)4.2 客户端设计与实现 (16)4.2.1 登陆模块 (16)4.2.2 主界面模块 (16)4.2.3 私聊模块 (19)4.2.4 聊天记录管理模块 (21)II网络聊天系统的设计与实现5 测试 (23)5.1 软件测试概述 (23)5.2 测试策略与结果分析 (23)结论 (28)参考文献 (29)III网络聊天系统的设计与实现引言随着不断投入的信息技术,网络,作为一种新生事物,近年来现代技术的普及得到了前所未有的深入,网络应用不断涌现层出不穷,所有的层级和所有年龄的用户提供不同的个性化服务。
局域网聊天工具的设计与实现

本科生毕业论文论文题目:局域网聊天工具的设计与实现外文题目:The design and realization of theLAN chat implement学生姓名:***学生学号:****专业班级:计算机科学***学院名称:计算机信息***指导教师:***教授声明本人郑重声明:所呈交的论文是本人在老师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
摘要本论文所设计的局域网聊天程序将采用软件工程学的设计流程,其所涉及专业技术主要包含socket网络编程,ODBC数据库编程技术,Windows MFC 程序设计技术,多线程机制。
本程序将以VC 6.0作为系统开发工具,Microsoft SQL Sever 2000作为后台数据库管理系统,通过Microsoft操作系统自带的ODBC管理工具连接程序和数据库。
此聊天程序将采用C/S模式即客户端/服务器模式。
客户端和服务器、客户端和客户端之间均采用UDP进行通信。
服务器主要负责储存局域网内所有用户的信息,当用户信息发生变化时通知所有客户端。
此外服务器还要负责分配用户的惟一标识Uid。
除此之外,服务器还能注销用户和群发系统消息。
客户端具有用户注册、用户登录和向局域网内任何一个用户发送信息的功能。
客户端需手动输入服务器地址。
关键词:局域网聊天;socket(套接字);ODBC(开放数据互连);客户端/服务器模式;MFC(微软基础类);多线程;UDP(用户数据报协议)AbstractThe LAN chat program in this article will use the design procedure of the Software Engineering to design with Socket Network Programming,ODBC Database Programming,Windows MFC Programming,Multithread.This program will adopt VC 6.0 as the system Develpoment tool,and SQL Sever 2000 as the databse management system,while the ODBC management tool belong to Microsoft Operating System is used to link the program and databse.This chat program will be based on C/S architecture.The communication between client and server or client and client will depend on the UDP protocol.The Server is in charge of storing the information of all the users int the LAN,and notify all the users while the information change.Except that,what the Sever will do is to assign the Uid which one is the only mark of client user,delete user and send system message to all users.The Client is in charge of user register,user log on and chatting with any one else in the LAN.The Client need to manually input the address of the Server.Key words:LAN chat,socket,ODBC,C/S,MFC,multithread,UDP目录声明 (I)摘要 (I)Abstract (Ⅱ)1 引言 (1)1.1课题背景及意义 (1)1.2 课题现状 (1)1.3 开发平台及开发技术的介绍 (1)1.3.1 VC++6.0 开发平台介绍 (1)1.3.2 Windows Socket网络编程简介 (2)2 需求分析及可行性研究 (2)2.1 需求分析 (2)2.1.1 功能需求分析 (2)2.1.2 数据需求分析 (2)2.1.3 性能需求分析 (2)2.1.4 运行需求分析 (2)2.2 可行性研究 (2)3 相关开发技术的原理性说明 (3)3.1 win32编程原理及MFC框架 (3)3.1.1 win32编程原理 (3)3.1.2 MFC框架 (4)3.2 TCP/IP协议及WINDOWS SOCKETS网络编程接口 (4)3.2.1 TCP/IP协议简介 (4)3.2.2 Windows Sockets 网络编程接口 (4)3.3 多线程技术 (5)3.3.1 进程及线程概述 (5)3.3.2 Win32 API 对多线编程的支持 (6)3.4 MFC ODBC数据库访问技术 (7)3.4.1 ODBC 简介 (7)3.4.2 MFC封装的ODBC数据库类 (7)3.4.3 应用ODBC编程方法介绍 (8)4 总体设计 (9)4.1 体系结构设计 (9)4.2 功能模块设计 (9)4.3 数据结构设计 (10)5 详细设计与编码实现 (11)5.1 服务器详细设计 (11)5.1.1 服务器界面设计 (11)5.1.2 服务器通信模块设计 (15)5.2 客户端详细设计 (23)5.2.1客户端界面设计 (23)5.2.2客户端通信模块设计 (30)6 测试 (42)6.1 功能性测试………………………………………………….42.6.2 容错性测试 (42)参考文献 (42)1 引言1.1课题背景及意义随着计算机科学技术的飞速发展,网络越来越深刻的改变着人们生活方方面面。
基于局域网的即时通讯聊天室系统毕业设计

本科毕业设计(论文)题目基于局域网的即时通讯聊天室系统设计部系地方生部专业电子信息工程基于局域网的即时通讯聊天系统的设计摘要随着计算机科学和Internet 的飞速发展, 网上聊天已成为人们相互交流的一种方式, 与E-mail、相比, 聊天服务更具有实时性和有效性。
本论文提出一个运行于VC平台上的局域网聊天软件的解决方案。
该聊天软件包括服务器端和客户端两个模块,客户端通过服务器端进行通信。
服务器端模块主要实现了服务器的配置和数据的传递;客户端模块主要实现了用户注册、登录、文字聊天等功能。
该软件采用异步套接字的非阻塞模式,并实现对象的序列化和MFC文件对象实现数据的保存。
该软件能够帮助企业在局域网搭建起自己的聊天系统,避免企业部员工使用类似QQ等软件泄露部信息,但是该软件只实现了聊天的基本功能,还有很多不足之处需要改进。
关键字:局域网、即时通信、套接字、异步模式An instant messaging chat system based of LANAbstractAlong with the high-speed development of the computer science and Internet, chatting on line has been an important method in our communication. Comparing with E-mail and telephone, the chat-line service is more real-time and effective.This thesis proposes a solution of a LAN chatting software based on C++ language, which is operated on the VC platform. This chatting software includes two modules: the server and the client, which can communicate with each other. The server module mainly completes the sever device’s configuration. The client module mainly completes the users’ login, registration, instant messaging and so on. The software used model of non-blocking asynchronous socket , And to achieve the object and MFC series documents the preservation of the object data.This software can help the company to build their own chatting system in the local area network, and it also can avoid the staffof the company disclosing the insider information by using the other software such as QQ, but this software has only completed the basic function as a chatting system, so it need much more improvement.Key words:LAN 、Instant messaging、Socket、asynchronous modle目录摘要--------------------------------------------------------------- I Abstract------------------------------------------------------------- II 1 概述--------------------------------------------------------------- 11.1 系统现状-------------------------------------------------------------- 1 1.2 系统容与目标---------------------------------------------------------- 2 1.3 系统综述-------------------------------------------------------------- 2 2系统开发环境和关键技术--------------------------------------------- 32.1 开发环境-------------------------------------------------------------- 32.2 关键技术-------------------------------------------------------------- 32.2.1 .Visual C++和面向对象程序设计---------------------------------------------- 32.2.2 M F C---------------------------------------------------------------------- 42.2.3 WINDOWS SOCKETS网络编程接口----------------------------------------------- 42.2.4 WSAAsyncSelect模型开发---------------------------------------------------- 52.2.5 TCP/IP协议、TCP协议------------------------------------------------------- 62.2.6 Client/Server结构(客户机/服务器模式) ------------------------------------ 8 3系统分析与设计 ---------------------------------------------------- 93.1 系统分析-------------------------------------------------------------- 93.1.1 系统需求------------------------------------------------------------------- 93.1.2 需求分析------------------------------------------------------------------ 103.2 系统设计------------------------------------------------------------- 113.2.1 设计原则------------------------------------------------------------------ 113.2.3 工作流程------------------------------------------------------------------ 123.2.4 功能设计------------------------------------------------------------------ 133.2.5 共享数据类设计------------------------------------------------------------ 134系统实现--------------------------------------------------------- 164.1 服务器端设计实现------------------------------------------------------ 164.1.1 服务器端静态类图---------------------------------------------------------- 164.1.2 服务器主要类介绍---------------------------------------------------------- 164.1.3 服务器端主要过程介绍------------------------------------------------------ 194.2 客户端设计实现 ------------------------------------------------------- 254.2.1 客户端静态类图------------------------------------------------------------ 254.2.2 客户端主要类介绍---------------------------------------------------------- 254.2.3客户端主要过程介绍 -------------------------------------------------------- 274.3系统测试-------------------------------------------------------------- 324.3.1 测试意义 ----------------------------------------------------------- 324.3.2软件测试的目标 ------------------------------------------------------------ 324.3.2软件测试的方法 ------------------------------------------------------------ 324.3.3 测试用例------------------------------------------------------------------ 33总结与展望 ---------------------------------------------------------- 34参考文献 ------------------------------------------------------------ 36致 ---------------------------------------------------------------- 371 概述近年来,随着全球信息化进程的不断发展,网络也在飞速发展。
局域网聊天室系统的设计与实现毕业设计

基于局域网的视频聊天室系统的设计与实现摘要视频聊天系统作为一种新型的通信和交流工具,突破了地域的限制,可以提供更为便捷、灵活、全面的音、视频信息的传递和服务,具有极其广泛的发展前景。
本文介绍了采用Microsoft Visual C++ 6.0编程开发视频聊天系统的一套比较常用的解决方案。
文字聊天采用TCP模式;语音视频聊天采用UDP模式,在客户端之间点对点的进行。
在该方案中,通过函数库VFW来实现视频捕获、影像压缩以及影像播放。
微软公司提供的专门用于视频捕获开发的工具包VFW,为在Windows操作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。
在视频传输方面,则通过组建视频帧,将位图形式的视频帧压缩成帧格式的Mpeg4流,传输到客户端后,解压并显示影像。
同时,在本方案中,采用了线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。
关键词:文字聊天;VFW;视频捕获;视频传输;语音录制;语音回放The Design and Realization of LAN-Based Video Chat RoomSystemAbstractAs a new tool about communication, video chatting system has broken through geographical restrictions, has provides more convenient, flexible and complete transmission and service. Furthermore, it has a very bright future.The common solution about how to develop a video chatting system is introduced by the Microsoft Visual C + + 6.0 programming. TCP model is used in the text chatting and UDP for the point-to-point video chats between the Clients. In this plan, Video Capture, Video Compression Manager and DrawDib are realized by the functions of VFW Library. The special kit VFW (Video for Windows) in video capture offered by Microsoft Corporation, has provided a standard interface for video capture in Windows Operating System and thus greatly reduced the hardship of programming. In video transmission aspect, it requires a video frame which is compressed the video frame of bitmap into Mpeg4 steam of frame form. Then it will be decompressed into images since it has been arrived the Client. Meanwhile, the thread is used to achieve audio recording and replaying. Finally, it has realized the text chatting through a server to transit, the point-to-point audio and video chats.Key words:text chatting; VFW; Video Capture; video transmission; audio recording;audio playing目录论文总页数:24页1 引言 (1)1.1 课题背景 (1)1.2 国内外研究现状 (1)2 理论知识介绍 (1)2.1 VFW简介 (1)2.2 线程的实现方法 (4)3 需求分析 (5)3.1 软硬件环境 (5)3.2 需求分析 (5)4 系统结构 (7)4.1 硬件结构 (7)4.2 软件结构 (7)4.2.1 功能需求 (7)4.2.2 系统功能模块图 (8)4.3 系统各模块流程图 (8)5 系统的详细设计 (10)5.1 文字聊天 (10)5.1.1 TCP套接字的运用 (10)5.1.2 文字聊天实现 (11)5.2 语音视频聊天 (13)5.2.1 UDP套接字的运用 (13)5.2.2 视频的捕获 (14)5.2.3 捕获窗口 (16)5.2.4 视频捕获驱动 (18)5.2.5 语音录制 (18)5.2.6 语音回放 (19)5.2.7 视音频的传输 (20)结论......................................................................................................... 错误!未定义书签。
毕业论文局域网聊天软件的设计与实现原理

摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。
本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。
系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。
使用JAVA语言编写,开发工具采用Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。
大大增强了程序对服务器资源的利用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。
关键字:多线程;客户机/服务器;JAVA ; Socket ; Eclipse ; TCP/IPAbstractas the network become more and more developed, people become more and more lean to the network, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ.Java network programming based on the power, the use of Java designed to prepare graduates a chat system.In general, the majority of the chat tool for client and server program in addition to server-side storage of customer data for the database,the system uses a client / server architecture model the adoption of Java provided Socket class connect client and server and between the client and server communicate with each other, as the chat is to provide point-to-multipoint and multi-threaded Java function to be completed by using multi-threaded chat and more point-to-multipoint, database management system with SQL Server2000 the completion and adoption of JDBC-ODBC Bridge access the database.The system built on the JAVA platform, the system design using object-oriented technology and object-oriented design principles. System uses the C / S structure, client and client-side and server-side client and send messages through Socket. The use of JAVA language, development tools using Eclipse. Design and Implementation of server-side process, the use of multi-threading technology, which can process in a single run at the same time a number of different threads, the implementation of different tasks. Procedures greatly enhanced the use of server resources.Chat system will allow people to complete chat to more friends,and the system can add, delete somebody,can deal with new user registration, send messages, receive messages and so on.Keywords : Multithreading ;Client/Server ;JAVA ;Socket ;Eclipse ;TCP/IP目录1 绪论 (5)1.1国内外聊天系统的研究现状 (5)1.2J AVA语言 (6)1.2.1 Java的发展历史 (6)1.2.2 Java的特点 (7)1.2.3 Java与Internet (7)1.3S OCKET编程 (8)1.3.1 关于TCP/IP协议 (8)1.3.2 服务器和客户机 (9)1.4本文内容安排 (9)2 需求分析 (10)2.1可行性研究 (10)2.1.1 可行性分析 (10)2.1.2系统功能需求 (10)2.1.3 系统性能需求 (11)2.1.4 系统运行需求 (11)2.2数据流图 (11)2.2.1 顶层数据流图 (11)2.2.2 一层数据流图 (12)2.2.3 二层数据流图 (13)3 概要设计 (14)3.1系统实现原理 (14)3.2系统实现层次图: (15)3.3各模块详细功能 (15)3.3.1服务器端结构 (15)3.3.2 客户端结构 (16)4 详细设计 (17)4.1系统流程图 (17)4.1.1 系统总体流程图 (17)4.1.2 系统客户端流程图 (18)4.2编写服务器端程序 (18)4.2.1 问题陈述 (18)4.2.2 解决方案 (19)4.3客户端程序编写 (23)4.3.1 (23)4.3.2 用户登录 (23)4.3.3 聊天室 (24)参考文献 (30)致谢 (31)1 绪论1.1国内外聊天系统的研究现状目前国内外做聊天系统的公司很多,产品也琳琅满目,国内有诸如腾讯QQ、新浪UC、网易泡泡等,国外有著名的MSN(新版改名为Live Messenger)以及跨平台Gaim等。
网络聊天系统的设计与实现

网络教育学院本科生毕业论文(设计)题目:网络聊天系统的设计与实现学习中心:___________________层次:专科起点本科专业:年级:年春/秋季学号:学生:指导教师:内容摘要随着互联网技术的飞速发展,网络已经成为人们生活中不可缺少的一部分,通过网上聊天已经成为人与人之间的网络通信的聊天,交流和联系的一种方式。
因此,更多的网站开始提供在线聊天功能。
与此同时,以其方便,快捷,成本低的优势,聊天室众多企业的青睐,许多企业网站也加入了聊天室,从而促进消费者与消费者和消费者之间的通信模块。
本文是一个软件工程的在线聊天系统,专注于系统的开发,使用系统的分析,设计和思维测试软件工程知识来实现的描述,其中包括三个主要方面的软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码,测试)和运行维护。
通过运用软件工程知识处理实际,加强的问题,清晰,可靠的标准化,使得程序易于维护。
该软件使用JAVA编写,具有良好的兼容性,易于实现。
操作简单,使用方便结构简单,易于搜索,实用的聊天室。
关键词:网络;通信;套接字目录内容摘要 (I)引言 (4)1 概述 (5)1.1 课题研究背景和意义 (5)1.2 本文的主要内容及组织结构 (5)2网络应用系统开发技术介绍 (7)2.1 TCP/IP 协议概述 (7)2.2 客户/服务器模型 (7)2.3 Socket 网络编程 (7)2.4 开发工具与运行环境 (8)2.5 其他技术 (8)3网络聊天系统的分析与设计 (10)3.1 可行性分析 (10)3.2 需求分析 (10)3.3 系统总体设计 (11)3.3.1 系统架构模型 (12)3.3.2 功能模块设计 (12)3.3.3 系统通信设计 (12)3.3.4 数据库设计 (13)4网络聊天系统详细设计及实现 (14)4.1 服务器端设计与实现 (14)4.1.1 服务器等待连接进程/线程设计 (15)4.1.2 服务器处理客户端信息进程/线程设计 (16)4.2 客户端设计与实现 (16)4.2.1 登陆模块 (16)4.2.2 主界面模块 (16)4.2.3 私聊模块 (19)4.2.4 聊天记录管理模块 (21)5 测试 (23)5.1 软件测试概述 (23)5.2 测试策略与结果分析 (23)结论 (28)参考文献 (29)引言随着不断投入的信息技术,网络,作为一种新生事物,近年来现代技术的普及得到了前所未有的深入,网络应用不断涌现层出不穷,所有的层级和所有年龄的用户提供不同的个性化服务。
局域网聊天系统论文

课程设计报告书题目:局域网聊天系统课程:TCP/IP协议课程设计班级:10网工学号:20109346008姓名:学期:2013-9——2013-12二0一三年十月(一)目的与要求:为了进一步加强同学们课堂上学习的知识,加强学生对理论知识的理解和进一步的应用,本课程最后推出了这分课程设计报告,要求同学们充分的运用课堂上学习的知识,按照自己的理解和布局设计出本系统。
(二)系统需求分析:该系统模块实现了局域网之间的聊天,应用java语言对TCP/IP的运用,使得在同一局域网中的多个主机可以通过连接一个共同的服务器来相互聊天,可以给人们的生活工作带来一定的便捷性。
(三)系统实现步骤:代码一(ClientServer类)package Test07;import java.io.*;import .*;import java.nio.Buffer;import java.util.*;public class ChatServer {boolean started = false;ServerSocket ss = null;List<Client> clients = new ArrayList<Client>();public static void main(String[] args) {new ChatServer().start();}public void start() {try {ss = new ServerSocket(8888);started = true;} catch (BindException e) {System.out.println("端口使用中....");System.out.println("请关掉相关程序并重新运行服务器!");System.exit(0);} catch (IOException e) {e.printStackTrace();}try {while (started) {Socket s = ss.accept();Client c = new Client(s);System.out.println("a client connected!");new Thread(c).start();clients.add(c);}} catch (IOException e) {e.printStackTrace();} finally {try {ss.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}class Client implements Runnable {private Socket s;private DataInputStream dis = null;private DataOutputStream dos = null;private boolean bConnected = false;private FileOutputStream fos = null;private FileOutputStream fos1 = null;private BufferedReader br = null;public Client(Socket s) {this.s = s;try {dis = new DataInputStream(s.getInputStream());dos = new DataOutputStream(s.getOutputStream());fos = new FileOutputStream("E:\\Text.txt");bConnected = true;} catch (IOException e) {e.printStackTrace();}}public void send(String str) {String ss = null;try {dos.writeUTF(str);fos.write(str.getBytes());} catch (IOException e) {clients.remove(this);System.out.println("对方退出了!我从List里面去掉了!");}}public void run() {try {while (bConnected) {String str = dis.readUTF();System.out.println(str);for (int i = 0; i < clients.size(); i++) {Client c = clients.get(i);c.send(str);}}} catch (EOFException e) {System.out.println("Client closed!");} catch (IOException e) {e.printStackTrace();} finally {try {if (dis != null)dis.close();if (dos != null)dos.close();if (s != null) {s.close();}} catch (IOException e1) {e1.printStackTrace();}}}}}代码二(ChatClient类)package Test07;import java.awt.BorderLayout;import java.awt.Frame;import bel;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.EOFException;import java.io.FileOutputStream;import java.io.IOException;import .Socket;import .SocketException;import .UnknownHostException;import java.util.Date;import java.util.Scanner;public class ChatClient extends Frame {private String str1;Frame f = new Frame();Socket s = null;Date d = null;DataOutputStream dos = null;DataInputStream dis = null;FileOutputStream fos = null;private boolean bConnected = false;TextField tfTxt = new TextField();TextField tfTxt2 = new TextField();TextArea taContent = new TextArea();Thread tRecv = new Thread(new RecvThread());Scanner input = new Scanner(System.in);// public static void main(String[] args)// {// new ChatClient().launchFrame();// }public void launchFrame(String str) {str1 = str;f = new Frame(str);f.setLocation(400, 300);f.setSize(300, 300);f.add(tfTxt, BorderLayout.SOUTH);f.add(taContent, BorderLayout.NORTH);pack();f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent arg0) {disconnect();System.exit(0);}});tfTxt.addActionListener(new TFListener());f.setVisible(true);connect();tRecv.start();。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录摘要 (I)Abstract .................................................................................................................................... I I 1 引言. (1)1.1 课题背景及意义: (1)1.2 课题现状 (2)1.3 本文的主要工作: (3)1.4开发平台与技术的选择及介绍 (3)1.4.1 开发环境的介绍 (3)1.4.2 WINDOWS SOCKETS网络编程接口概述 (4)1.4.3 VC++6.0开发平台简介 (5)2 需求分析及可行性研究 (5)2.1 需求分析: (5)2.1.1 时间要求 (5)2.1.2 功能要求 (5)2.1.3 系统基本流程图 (6)2.1.4 性能要求 (6)2.1.5 测试环境规定 (7)2.2 可行性研究: (7)3 相关开发技术的原理性说明 (7)3.1 win32编程原理及MFC框架 (7)3.1.1 WIN32编程原理 (7)3.1.2 MFC框架 (10)3.2 TCP/IP 协议及WINDOWS SOCKETS网络编程接口 (12)3.2.1 TCP/IP协议简介 (13)3.2.2 WINDOWS SOCKETS网络编程接口概述 (15)3.3 多线程编程技术 (17)3.3.1 进程及线程概述 (17)3.3.2 Win32 API对多线程编程的支持 (18)4 总体设计 (20)4.1体系结构设计 (20)4.2 功能模块划分 (21)4.3 数据结构设计 (22)4.4 用户界面设计 (24)4.4.1 服务器端显示界面: (24)4.4.2 客户端显示界面: (25)5 详细设计及编码实现 (25)5.1 主框架及用户界面模块详细设计 (25)5.2 网络扫描模块详细设 (27)5.3 信息发送模块详细设计 (28)5.4 信息接收模块详细设计 (29)6 测试 (29)结论 (30)致谢 (32)参考文献 (33)摘要随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。
局域网的发展也同样迅速。
很多政府机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入INTERNET.因此基于局域网的即时通信工具,就这样应运而生了。
所以本文提出了一个更加合理的设计,并在WINDOWS 平台上加以了实现.在本实现内将客户端和服务端综合在一个程序之内,用多线程实现不同的并行任务。
并进行了人性化的界面设计,使用起来更加简单方便,并且功能十分合理,又易于扩展以及个性化定制。
本文通过局域网聊天系统来具体共享内存实现进程间的数据交换,利用windows消息机制实现进程间的同步,两种机制结合使用。
关键词:局域网;即时通信;客户端;服务端;多线程;共享内存;信息AbstractAlong with the high-speed development of the computer network technology, various of applications based on network was born, like information releasing, data sharing ... The development of the LAN is the same fast. Some governments, enterprises and schools constitute a LAN first ,then join into INTERNET. So the instant messenger in LAN was borned. So I make a new design, and implement it on WINDOWS platform. In my implementation the client and the server were integrated in one program with multi thread mechanism. And had a good GUI,it was very easy to use it. And the function is very realizable. At last, it is also easy for expanding.Key words: LAN, instant messaging, client, server, multi thread,share memory,Information1 引言1.1 课题背景及意义:近年来,随着全球信息化进程的不断发展,网络也在飞速发展。
出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。
在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。
然而,随着企业规模的扩大,业务量的增加,在局域网上运行的应用越来越多,如知识库、网络会议、数据库应用和数据的同步与备份等,这些应用对局域网的信息吞吐、处理能力的要求也越来越高。
这些在企业内部原有局域网设计之初未曾考虑到的新情况的出现使得局域网不堪重负,容易发生信息阻塞,此时,局域网不但不能提高生产效率,反而成为企业发展的瓶颈。
为了解决上述矛盾,人们提出了许多方法。
提升网络带宽及增加服务器的吞吐能力是解决此矛盾的一种方法。
然而,从企业运行的成本方面考虑,无论是单纯地提升网络带宽或增加服务器的吞吐能力都不能从根本上解决局域网资源紧张的问题,对旧有局域网的大规模硬件改造反而会增加企业的负担。
我在本文中将讨论一种基于Socket的局域网通信工具的设计与实现方法。
基于Socket的局域网通信软件可以为企业原有的局域网提供一种良好,安全,快速的通信机制。
它的实现无需对企业原有的局域网硬件进行任何改动,具有实现成本低廉的优点,它的使用能有效地降低局域网通信负荷,提高局域网的使用效率,可以很好地解决企业内部局域网的各种通信需求。
基于Socket的局域网聊天工具是此类局域网通信软件的具体实例之一,它很好地诠释了Socket通信的原理,并且在企业内部通信、教学、讨论等应用中都具有一定的实用价值。
它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。
基于Socket的局域网通信软件应用范围广阔,不但可以处理传统的通信需求,而且也能扩展以适应新型的网络应用,如网络教育,数据影音传输等,拥有广泛的应用前景。
1.2 课题现状基于局域网的即时通信工具,实际上是互联网即时通信工具的一个小规模版本,广域网上的即时通信工具,如今一般采用UDP或者TCP协议体系来实现,开发技术已经比较成熟,比如较早的ICQ,MSN Messanger,Yahoo 通这些国外开发的产品,还有国产的有名的QQ,新浪UC,LA V A-LA V A等,这些工具统统都实现了广域网上的即时通信,尽管都是即时通信,实现了即时聊天,以及文件传输的主要功能,但是也各有各的特色,比如ICQ的巨大客户群,MSN的个性化表情,YAHOO通的易操作性等。
而QQ也具有一个相当方便的屏幕截图功能,另外就是,所有上述软件都实现了网络即时的视频,语音聊天功能。
这些软件,在使用方面各有特色,在实现方面也各有所长,但基于这些产品正在商业运营阶段,其实现方式属于商业机密,具体细节不可能得知,但是它在大的方面无非就是各种利用各种平台上的网络通信接口,建构基于下层TCP/IP,或者UDP/IP协议的软件产品。
在局域网内,这些功能的实现跟广域网相比更加简单,因为局域网的网络结构本身比广域网要复杂,但是又可以借些理解网络协议,以及网络通信工具的实现原理,所以仍然极具研究价值。
1.3 本文的主要工作:本文主要工作是设计一个基于WINDOWS平台的局域网即时聊天工具,然后阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。
1.4开发平台与技术的选择及介绍1.4.1 开发环境的介绍我所设计的是一个面向中小型机构内部通信需求的局域网即时信息软件,要在短时间内开发出来并且要满足客户要求,无论是硬件还是软件都要选择合适,要求如下:开发设备应该完备;开发机器的性能必须稳定;操作系统的选择必须恬当;开发出的程序可以在尽可能多的平台上运行;要求运行机配置尽可能低档。
对此,我们选择的硬件环境和软件环境如下:(1) 硬件环境开发该系统应尽可能采用高档的硬件。
因此,在应用时应采用更好的配置。
处理器:Intel Pentium PIII或更高处理器。
内存:128MB或更高。
网络:局域网。
(2) 软件环境选择好的操作系统和好的编程语言是系统优劣的关键,我们要求系统在尽可能多的环境下运行,故选择Windows XP平台,对于一些无法在98中运行的API函数,一律不采用,并采取优化的算法编写程序。
因VC6.0具有友好的集成开发界面、面向对象的可视化开发模式、良好的数据库及多媒体应用支持以及高效的软件开发与程序运行,功能更大,开发效率更高,不仅是网络环境下的优秀前端开发语言和工具,也是服务器端Web编程的优秀工具。
加之我本人对本系统的操作最为熟练,所以选择该平台为开发环境。
操作系统:Windows XP或Window2000。
开发工具:VC++6.0。
1.4.2 WINDOWS SOCKETS网络编程接口概述既然选定了WINDOWS平台,而又要开发网络通信程序,所以可以选择WINDOWS的SOCKETS编程接口,Windows Sockets是一套开放的、支持多种协议的Windows下的网络编程接口。
现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。
Winsockets无疑是我们进行网络编程的利器。
1.4.3 VC++6.0开发平台简介开发平台我选用了VC6.0,因为一直以来都使用VC6进行学习,对这个IDE最为熟悉,再者VC同样是由微软开发的系统,与其操作系统,网络接口具有最为密切的契合优点,所以选择了VC6.0。
2 需求分析及可行性研究2.1 需求分析:2.1.1 时间要求本项目作为大学本科毕业设计题目,从3月8号接受选题开始,在5月10号之前完成系统设计,编码实现工作,在5月20号之前完成毕业设计论文初稿,6月1号之前最终完成论文。
2.1.2 功能要求(1)用户端之间的信息发送,本程序需要实现的最基本的功能(2)在线用户主机名列表的维护。