基于socket的局域网聊天程序的设计与实现
socket编程聊天室基本流程

socket编程聊天室基本流程一、引言Socket编程是一种用于网络通信的编程技术。
它允许程序员创建客户端和服务器应用程序,这些应用程序可以在不同的计算机上运行并通过Internet或局域网相互通信。
在本文中,我们将介绍Socket编程聊天室的基本流程。
二、Socket编程概述Socket编程是一种基于TCP/IP协议的网络编程技术。
它使用套接字(socket)来实现网络通信。
套接字是一种抽象概念,它表示一个网络连接点,可以用来发送和接收数据。
在Socket编程中,客户端和服务器之间建立一个连接,然后通过这个连接进行数据传输。
客户端向服务器发送请求,并等待服务器响应。
服务器接收请求并处理它,并将响应发送回客户端。
三、Socket编程聊天室基本流程1. 创建服务器程序首先,我们需要创建一个服务器程序来监听客户端连接请求。
在Python中,可以使用socket模块来创建套接字对象,并使用bind()方法将其绑定到指定的IP地址和端口号上。
2. 创建客户端程序然后,我们需要创建一个客户端程序来连接到服务器。
同样地,在Python中可以使用socket模块来创建套接字对象,并使用connect()方法连接到指定的IP地址和端口号上。
3. 实现消息传输一旦客户端和服务器之间建立了连接,它们就可以开始进行消息传输。
在Socket编程中,可以使用send()方法将数据发送到对方,使用recv()方法从对方接收数据。
4. 实现聊天室功能为了实现聊天室功能,我们需要让多个客户端能够同时连接到服务器,并且能够相互通信。
为此,我们可以使用多线程或异步编程技术来实现。
在多线程模式下,每个客户端连接都会被分配一个独立的线程来处理。
这个线程负责接收客户端发送的消息,并将其转发给其他客户端。
在异步编程模式下,我们可以使用协程或回调函数来处理消息传输。
当有新的消息到达时,就会触发相应的回调函数进行处理。
5. 实现用户管理为了实现用户管理功能,我们需要让每个客户端都能够注册一个唯一的用户名,并且能够查看当前在线的用户列表。
C#基于socket的聊天工具与其源码

C#基于socket的聊天工具与其源码本例为家猫本人原作,做此工具时刚从学校毕业,那会比较爱学习,所以此工具代码有点点乱,此工具本是基于局域网的聊天工具,无需建立服务端,直接通过协议同步网内用户后来扩展了外网功能,后面会讲到主要是用于公司内部交流用,集成了涂鸦,表情,截图等简单功能当启动nettalk工具后,可以在菜单个人设置中简单地设置下名称和分组下面是涂鸦效果图:功能都比较简单,,可以用来学习,,用到的知识点还是很广的局域网聊天很简单,服务端都不用启用,直接每个人启动客户端即可下面来说说怎么部署到外网:首先得有一台外网能访问的机器,一般家庭网络的做法是通过路由器映射一个端口到您当做服务器的IP上,我默认用的端口是:60000你可以改为你需要的端口,如果改端口得到server端的app.config中的配置改为你的端口,port为服务端采用的端口server就是您的外网IP,我这里用的是花生壳域名,因为我没有静态IP1<?xml version="1.0" encoding="utf-8" ?>2<configuration>3<configSections>4</configSections>5<connectionStrings>6</connectionStrings>7<appSettings>8<!-- 是否自动启动并开启服务器-->9<add key="AUTOSTART" value="false"/>10<!--是否对本地用户监听-->11<add key="LISTENLOCAL" value="false"/>12<!--是否为二级服务器-->13<add key="LEVELSERVER" value="false"/>14<!--如果为二级服务器此地址才会有效,为主服务器的地址-->15<add key="SERVER" value=""/>16<!--如果为主服务器,此项为主服务器的监听端口,,如果为二级服务器,此端口为远程主服务器的端口,与SERVER项一起使用-->17<add key="PORT" value="60000"/>18</appSettings>19</configuration>配置好服务端后启动程序:点控制菜单中的启动服务即可成功启动后,,其它客户端就可以登录此服务端了外网需要注册用户,,在服务端工具菜单有注册用户。
基于SOCKET技术的网络即时通讯软件的设计与实现

目录摘要 (1)1 前言 (1)2 可行性研究 (2)2.1开发背景 (2)2.2技术可行性分析 (2)2.3面临问题及现状 (2)2.4开发目的及意义 (3)2.5.1运行环境 (3)2.5.2性能要求 (3)3 需求分析 (3)3.1系统总体功能 (3)3.2开发工具以及使用的主要技术简介 (4)3.2.1数据库Microsoft SQL2000简介 (5)3.2.2 eclipse简介 (6)3.3客户机/服务期(C/S)工作原理 (7)3.4套接字(SOCKET)原理图 (8)3.5系统逻辑模式 (8)3 概要设计 (9)3.1客户端 (10)3.1.1 用户注册功能模块 (10)3.1.2发送消息功能模块 (11)3.1.3查找好友功能模块 (11)3.1.4 添加好友模块 (11)3.1.5删除好友模块 (12)3.1.6修改个人信息模块 (12)3.2服务器 (12)3.2.1用户登录模块设计 (13)3.2.2新用户注册模块设计 (14)3.2.3查找网友模块设计 (15)3.2.4添加好友模块设计 (16)3.2.5 用户之间发送数据模块设计 (17)3.3数据库设计 (18)3.3.1数据库结构设计 (19)3.3.2数据表设计 (19)3.3.3 数据字典 (21)(1) 聊天信息字典 (21)4 详细设计 (22)4.1服务器端 (22)4.1.1服务器建立和启动模块 (22)4.1.2 数据库交互模块 (23)4.1.3 处理客户端请求模块 (25)4.1.4 异常处理模块 (25)4.2客户端 (25)4.2.1 客户端与服务器建立连接模块 (25)4.2.2 用户登陆模块 (26)4.2.3 注册模块 (26)4.2.4 通讯模块 (27)4.2.5 聊天模块 (28)4.2.6 查找好友模块 (29)4.2.7个人信息模块 (30)5 总结 (32)参考文献 (33)致谢........................................... 错误!未定义书签。
基于JAVA局域网聊天软件_毕业设计论文-

本科毕业论文(毕业设计)题目:局域网聊天软件系院:学生姓名:学号:专业:年级:完成日期:指导教师:摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。
基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。
一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。
本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。
系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。
使用JAVA语言编写,开发工具采用Eclipse。
服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。
大大增强了程序对服务器资源的利用。
聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。
关键字:多线程;客户机/服务器;JA V A ;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 ofJDBC-ODBC Bridge access the database.The system built on the JAVA platform, the system design usingobject-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 ;JA V A ;Socket ;Eclipse ;TCP/IP目录1 绪论 ......................................................................................................... 错误!未定义书签。
基于TCPIP的局域网聊天室的设计与实现详解

基于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 JA V A 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 Room目录第1章引言 (1)1.1课题背景 (1)1.2国内外研究现状 (2)1.3主要内容 (3)第2章局域网聊天室系统分析 (4)2.1系统需求分析 (4)2.1.1功能需求 (4)2.1.2系统基本流程图 (4)2.1.3性能要求 (5)2.1.4测试环境规定 (5)2.2可行性研究 (5)2.2.1成本可行性分析 (5)2.2.2技术可行性分析 (5)2.3系统开发环境的分析 (6)2.4数据流图 (6)2.4.1顶层数据流图 (6)2.4.2一层数据流图 (6)第3章系统设计 (7)3.1设计目标 (7)3.2构建开发环境 (7)3.3系统模块流程图 (7)3.4系统功能模块图 (9)第4章基于Eclipse的聊天室的分析与设计 (10)4.1 TCP套接字的运用 (10)4.2 TCP三次握手协议 (11)4.3程序结构 (11)4.3.1多用户在线方案 (11)4.3.2软件框架 (12)4.4代码实现 (12)4.4.1用户登陆模块 (12)4.4.2用户列表模块 (13)4.4.3文本聊天模块 (15)4.4.4文件传输模块 (17)第5章局域网聊天室系统测试 (20)5.1系统测试结果与分析 (20)5.1.1用户登陆以及用户列表 (20)5.1.2文本聊天 (21)5.1.3文件传输功能 (24)5.2本章小结 (25)结束语 (26)参考文献......................................................... .27致谢. (29)第1章引言1.1课题背景近年来,随着全球信息化进程的不断发展,网络的发展也非常迅速。
计算机网络课程设计实验报告

计算机网络课程设计报告姓名:学号:班级:指导老师:湖南科技大学计算机科学与工程学院2013年6月实验一1。
实验名称:网络聊天程序的设计与实现2。
实验目的:通过本实验能够了解socket通信的原理并在此基础上编写一个聊天程序了解TCP/IP的基础知识,发现TCP与UDP的优缺点以及在网络通信的应用.3.实验原理:从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
当网络的边缘部分中的两个主机使用网络的两个主机使用网络的核心部分进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。
从IP层来说,通信的两端是两个主机,IP数据报的首部明确的标志了这两个主机的IP地址.但是严格的讲,两个主机进行通信就是两个主机中的应用进程互相通信。
根据应用程序的不同需求,运输层需要有两种不同的运输协议,即是面向连接的TCP和无连接的UDP。
在使用这两个协议时运输层向高层用户屏蔽了下面的网络核心的细节,它使应用进程看见的就是好像在两个运输层实体间有一条端到端的逻辑通信信道,但这条逻辑通信信道对上层的表现却因运输层使用的不同协议而有很大的差别.当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。
但当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道.由于我在课程设计中采用的是UDP协议进行通信的,这里就只简述一下一些关于UDP的内容,UDP在传送数据之前不需要先建立连接。
远地主机的运输层在收到UDP报文后,不需要给出任何确认。
虽然UDP不提供可靠的交付,但在某些情况下UDP却是一种最有效的工作方式.为此当我们使用UTP协议使两个计算机中的进程要互相通信,不仅必需知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
基于winsocket的网络聊天室

else { MessageBox("地址绑定失败!", "提示"); }
客户端提出链接申请
• 客户端的套接字调用connect()函数来提出与服务器端的套接字建立连 接的申请,函数调用成功返回0,否则返回SOCKET_ERROR。函数 格式如下: • Int PASCAL FAR connect(SOCKET s,const struct sockaddr FAR *name,int namelen); • 参数说明: • s:Socket的识别码 • name:Socket想要连接的对方地址 • namelen:name的长度监听 • 当服务器端的套接字对象绑定完成之后,服务器端需要建立一个监听 的队列 来接受客户端的连接请求。Listen()函数使服务器端的套接字 进入监听状态,并设定可以建立的最大连接数(目前最大限制为5, 最小值为一)。该函数调用成功返回0,否则返回SOCKET_ERROR。 • int listen(SOCKET s, int backlog); • s:表明一个已经绑定了地址,需要建立监听的套接字; • backlog:指定正在等待连接的最大连接个数; • 本程序在绑定端口时调用了此函数
服务器端的套接字调用完listen()函数后,等待客户端发出连接请求, 从而为客户提供服务。当客户端套接字建立完成后,调用connect()函数提 出一个与服务器建立连接的请求,如果服务器接受请求,则可以在服务 器的远程套接口与客户端的本地套接口之间建立一条连接。 服务器调用accept()函数完成建立连接,为了知道什么时候客户端提 出连接请求,从而服务器端的套接口在恰当的时候调用accept()函数完成 连接的建立,需要使用WSAAsyncSelect()函数,让系统主动通知有客户端 提出连接请求了。该函数调用成功返回0,否则返回SOCKET_ERROR。 此程序调用函数代码段: 客户端连接请求: //连接服务器 void CClientChatDlg::OnConnect() { closesocket(theApp.m_LocalSocket); theApp.m_LocalSocket = socket(AF_INET, SOCK_STREAM, 0); int nRet = WSAAsyncSelect(theApp.m_LocalSocket, AfxGetMainWnd()->m_hWnd, WM_SOCKET, FD_ACCEPT|FD_CLOSE|FD_READ|FD_WRITE|FD_CONNECT); UpdateData(); sockaddr_in sockAddr; sockAddr.sin_family = AF_INET; sockAddr.sin_port = htons(m_nServerPort);
局域网聊天系统的设计与实现设计

第一章绪论1.1 课题背景随着Internet的不断发展普及,网络通讯成为人们生活中的一部分。
网络聊天已和手机等一样,成为人们运用最为广泛的通信工具之一。
即时通讯(Instant Messenger,简称IM)软件可以说是目前我国上网用户使用率最高的软件,无论是老牌的ICQ,还是国内用户量第一的腾讯QQ,以及微软的MSN Messenger都是大众关注的焦点,它们能让你迅速地在网上找到你的朋友或工作伙伴,可以实时交谈和互传信息。
而且,现在不少IM软件还集成了数据交换、语音聊天、网络会议、电子邮件的功能。
IM软件的历史并不久远,但是它的出现,就立即受到大家的喜爱,并风靡全球。
在它的发展史上,以色列人是功不可没的。
正是四位以色列年轻人,在1996年7月成立的Mirabilis公司,并于同年11月推出了全世界第一个即时通讯软件ICQ,取意为“我在找你”——“I Seek You”,简称ICQ了。
直到现在,ICQ已经推出了它的2002a版本,在全球即时通讯市场上占有非常重要的地位。
目前,国内最为流行的即时通讯软件是OICQ(简称QQ)。
它以良好的中文界面和不断增强的功能形成了一定的QQ网络文化。
Messenger虽出道较晚,但依托微软的强大背景,实力也不可小视。
作为Windows XP的一部分,Messenger 整合了操作系统的许多功能,体现出了微软的真正实力所在,如多种形式的聊天选择、多人的单窗口讨论式交流以及充分的文件与桌面共享功能等。
它的令人耳目一新的中文界面和注册方式,连同它强大的功能,着实吸引了众多的眼球的注视,此外还有许多有特点的IM软件。
我们经常听到TCP/IP和UDP(用户数据报协议)这两个术语,它们都是建立在更低层的IP协议上的两种通讯传输协议。
TCP/IP是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生毕业论文(设计)题目基于socket的局域网聊天程序的设计与实现学院软件学院专业软件工程学生姓名曾伟学号0643111112年级2006指导教师舒莉教务处制表二Ο一Ο年五月二十日基于socket的局域网聊天程序的设计与实现软件工程学生曾伟指导老师舒莉[摘要]目前即时通讯软件在平时的生活中有着十分广泛的应用,但是对绝大部分的软件来说,都必须得应用在互联网上,必须在一个Internel环境下才能使用。
有的时候单位内部的员工,同学,可能没有互联网环境或者其他的原因希望不用上Internet就可以进行通讯,这样开发局域网通讯程序就有了必要性。
本文提出了局域网通讯软件的需求,并详细对网络协议TCP/IP协议族进行了介绍和研究,如TCP,UDP,广播,IP等相关的技术。
并对网络通讯原理进行了说明,在此基础上利用Socket网络编程实现了一种基于windows平台的局域网聊天程序。
程序采用了常用的P2P,C/S模型来实现,并整合了即时通信中的文本信息,文件传输,语音,广播,黑名单功能。
该软件采用多线程技术支持多用户操作,能够帮助企业在局域网内搭建起自己的聊天系统。
避免了必须的经过互联网的过程。
经过测试,程序能够有效达到基本的预期要求。
[关键词]局域网聊天程序;socket编程;TCP/IP;网络编程1The Design and Implementation of a LAN Chat ApplicationBased on SocketSoftware EngineeringStudent:Z eng Wei Adviser:Shu LiAbstract]]Instant messaging software in our daily lives has a very wide range of[Abstractapplications,However,most of the softwares must be used in the Internet,and it must be usedin a Internel environment.Sometimes Internal staff,students,may not have the Internetenvironment or other reasons do not wish to be able to communicate on the Internet,Thisdevelopment will have a need for LAN communication program.Therefore,this paper presentsthe needs of local area network communication software,And details of the network protocolTCP/IP protocol suite are introduced and research such as TCP,UDP,broadcast,IP and otherrelated technologies.and network communication theory is discussed.Based on this condition Iuse of Socket Network programming based on windows platform to develop a LAN chatapplication.The application uses conventional C/S,P2P model to achieve,and integrated in thetext message real-time communication,file transfer,voice,broadcasting,blacklist functions.The software supports multi-threading multi-user operation,Can help companies set up in theLAN from their own chat system,Avoid the need of the process through the Internet.Aftertesting,the program can effectively meet the basic expectations.[Key WordsWords]]LAN chat application;socket programming;TCP/IP;network programming2目录1绪论 (1)1.1论文背景及研究意义 (1)1.2国内外研究现状 (1)1.3论文的主要工作 (2)1.4论文内容安排 (2)2基础技术研究 (3)2.1TCP/IP协议研究 (3)2.1.1TCP/IP简介 (3)2.1.2IP:网际协议 (4)2.1.3UDP:用户数据报协议 (4)2.1.4广播 (5)2.1.5TCP:传输控制协议 (5)2.1.6TCP连接建立与终止 (5)2.2局域网聊天系统 (7)2.3S OCKET通信技术 (7)2.3.1Windows Socket规范 (7)2.3.2Socket网络编程原理 (8)2.3.3C/S模型介绍 (9)2.3.4P2P模型介绍 (10)3系统需求分析与概要设计 (11)3.1系统需求分析 (11)3.2系统整体框架 (11)3.2.1系统整体模块图 (11)3.2.2各模块简述 (12)3.3系统开发环境 (13)4系统详细设计与实现 (14)4.1局域网聊天系统的设计 (14)4.1.1部署模块 (14)4.1.2Server模块 (17)4.1.3Client模块 (19)4.1.4文件传输模块 (21)4.1.5语音模块 (23)4.1.6整体构架类图 (25)14.2系统运行界面 (26)4.2.1系统主界面 (26)4.2.2发送广播 (26)4.2.3请求连接和接受界面 (27)4.2.4聊天界面 (28)4.2.5文件传输界面 (29)4.2.6语音功能界面 (30)5系统测试 (30)5.1测试 (30)5.2本章小结 (32)6小结 (33)6.1工作总结 (33)6.2展望 (33)参考文献 (34)声明 (35)致谢 (36)附录:翻译(原文和译文) (37)21绪论1.1论文背景及研究意义自20世纪90年代以来,以因特网(Internet)为代表的计算机网络得到了飞速的发展,已从最初的教育科研网络逐步发展成为商业网络,并已成为仅次于全球电话网的世界第二]1[大网络。
我们所了解的,作为全世界应用最为广泛的网络,互联网上已开发出来的协议都具有极大的开放性,能使不在同一地方的计算机进行连接,直到目前,网络应用不断地发展,即时聊天软件提供了一种方便快捷的通信方式受到广大网民的喜爱,目前已有许多类似的软件,例如现在很流行MSN,但通信时还得通过互联网和服务器,如果没有互联网环境,就不能运行。
这样就会带来极大的不便,而且还会存在性能,安全性等许多方面的问题,并且还容易泄漏一些个人隐私。
所以针对以上的这些情况,就需要设计一款专门用于局域网内部的聊天程序。
此软件可以在局域网上实现快速的网上通信,十分地方便实用。
服务端也是整合在了系统中运行在局域网里的本地PC机上,这样就方便了管理和安全性,也可以大大节省成本,而且实现简单。
此外,此软件适用于基于windows平台的局域网,可以大量的推广使用。
1.2国内外研究现状目前计算机的型号各不相同,而且也是来自不同的厂家,运行的时候采用不同的操作系统,为了解决这一问题,就有了TCP/IP协议,TCP/IP协议族允许它们互相进行通信。
TCP/IP起源于六十年代末美国政府资助的一个分组交换网络研究项目,到90年代TCP/IP 已逐步发展成熟,并迅速成为了PC机之间最常应用的组网形式。
而且它是一个开放的系统,因为协议族的定义和其多种实现都可以公开地得到,且都有一套既定的标准。
它成为因特网(Internet)的基础,该广域网(WAN)已包含非常多的遍布世界各地的计算机。
]2[以windows系统平台为例,在其下的不同类型的网络编程接口中,Windows Sockets方便有效,越来越得到广大用户的喜爱,这是因为Windows Sockets网络编程规范是开源的并且支持多种协议的Windows平台下的网络编程接口。
从最初的1.0版到2.0.8版,经过不断完善,并在像Intel等许多国际大公司的全力支持下,已成为Windows网络编程的事实]3[上的标准。
随着互联网技术和计算机技术的飞速发展,即时通讯已成为人们交流的一种重要的方式,与E-mail、电话相比,其更具有实时性和有效性。
11.3论文的主要工作本文实现了基于TCP/IP的通信模型,结合socket编程实现了一个局域网聊天程序,并进行了测试。
本论文所做的主要工作有:1)对TCP/IP协议族进行了详细的原理介绍和研究;2)研究socket网络编程怎么对协议进行实现;3)在局域网windows平台搭建软件环境,并模拟每个功能的实现;4)在局域网环境中实现和测试该软件。
1.4论文内容安排论文的主要内容安排如下:第1章:绪论。
主要介绍了本论文的研究背景并对国内外的研究状况和论文的主要工作进行了大概的阐述;第2章:基础技术研究。
主要对TCP/IP协议,socket及相关技术的研究的介绍,详细介绍相关的算法和模型;第3章:系统需求分析和概要设计。
首先做了系统需求分析,分析了系统需要完成的主要功能并介绍了整个系统的总体设计,简述了各模块的功能;第4章:系统的详细设计和实现。
介绍了整个系统的总体设计,给出程序的流程图,并对系统的各个模块进行了详细的讲解;第5章:系统测试。
对系统进行测试,并对测试结果进行分析;第6章:小结。
本文对全文工作进行总结,指出了还需改进的地方,并对未来进行了展望。
22基础技术研究2.1TCP/IP协议研究2.1.1TCP/IP简介首先网络协议一般是通过分不同的level进行开发的,每一层都有自己的通信功能。
对于某一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。
TCP/IP通常被认]2[为是一个四层协议系统,如图2-1所示。
图2-1TCP/IP协议族中不同层次的协议]2[如图所示,每个level都有不同工作:1)链路层,也称为数据链路层或网络接口层,通常包括PC机自身的网络接口卡和本机操作系统中的设备驱动程序,用来处理相关的物理接口。