文档详情

基于tcp局域网聊天程序设计.pdf

发布:2020-12-10约2.23万字共24页下载文档
文本预览下载声明
第一章 系统分析 1.1 系统设计要求: 1. 2. 3. 1.2 系统原理框 本次课程设计的原理框图如 1.1所示: 1.1系统原理框 1.3 系统设计原理 局域网聊天程序的实现主要为局域网内的计算机提供交流的平台。完成一个基于服 务器和客户端的局域网通讯软件,类似于聊天室,可进行注册、登录、系统信息记录、 聊天等功能。用户容易使用,便于管理。 第二章 系统设计理论基础 2.1 TCP/IP 协议 TCP/IP 协议的核心部分是传输层协议 (TCP、UDP),网络层协议(IP)和物理接口层, 这三层通常是在操作系统内核中设计。因此用户一般不涉及。TCP 是面向连接的,通信 双方保持一条通路,好比目前的电话线,使用 telnet 登陆 BBS,用的就是 TCP 协议;UDP 是无连接的,通信双方都不保持对方的状态,浏览器访问Internet 时使用的 HTTP 协议 就是基于 UDP 协议的。 编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以 库函数方式提供的各种函数。前者为核内设计,后者为核外设计。用户服务要通过核外 的应用程序才能设计,所以要使用套接字(socket)来设计。 2.2 客户机/服务器模式 C/S 结构(Client/Server 结构)是大家熟知的客户机和服务器结构。它是软件系 统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端 和 Server 端来实现,降低了系统的通讯开销。 目前大多数应用软件系统都是Client/Server 形式的两层结构,由于现在的软件应 用系统正在向分布式的 Web 应用发展,Web 和 Client/Server 应用都可以进行同样的业 务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和 现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前 应用系统的发展方向。 首先服务器方要启动,并根据请求提供相应服务: (1)打开一通信通道并告知本地主机,它在某一公认地址端口上(如 http 为 80)接 受客户请求。 (2)等待客户请求到达该端口。 (3)接收到重复服务请求,处理该请求并发送应答信号。接收并发服务请求,要激 活一新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其他请求做出应 答。服务完成后,关闭此新进程与客户的通信链路,并终止。 (4)返回第二步,等待另外的客户请求 (5)关闭服务器。 客户方: (1)打开一通信通道,并连接到服务器所在主机的特定端口。 (2)向服务器发出服务请求报文,等待并接收应答;继续提出请求。 (3)请求结束后关闭通信通道并终止。 从上面的描述过程可知: (1)客户与服务器进程的作用是非对称的。因此编码不同。 (2)服务进程一般是先于客户请求启动的。只要系统运行,该进程一直存在,直到 正常终止或者强迫终止。在 TCP/IP 网络中两个进程间的相互作用的主机模式是客户机/ 服务器模式 (Client/Servermodel)。该模式的建立基于以下两点:1、非对等作用;2 通信完全是异步的。 2.3 Socket socket 之间的连接可以分为三种类型:客户端连接,监听连接以及服务器端连接。 客户端连接是指由客户端的 socket 提出连接请求,要连接的目标是服务器端的 socket。为此,客户端的 socket 必须首先描述它要连接的服务器端 socket(主要是指服 务器 端 socket 的地址和端口号),然后再定位所要连接的服务器端 socket,找到以后, 就向服务器端 socket 请求连接。当然,服务器端的 socket 此时未必正好处于准备好状 态,不过,服务器端的 socket 会自动维护客户请求连接的队列,然后在它认为合适的 时候向客户端 socket 发出允许连接 (accept)的信号,这时客户端 socket 与服务器 端 socket 的连接就建立了。 监听连接,服务器端 socket 并不定位具体的客户端 socket,而是处于等待连接的 状态。当服务器端 socket 监听到或者说 接收到客户端 socke
显示全部
相似文档