摘 要 网络通讯是目前计算机用户进行交流最普遍的方式,各种各样的聊天软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。本文介绍了在Windows环境下开发局域网聊天程序思路和方法。系统使用流行的Delphi7.0开发软件,采用Socket技术实现网络通讯。数据库使用Delphi自带的Database desktop。系统采用典型的C/S(服务器/客户端)构架。系统主要实现了用户注册、登录、聊天、服务器管理等功能。本系统从需求分析、系统的设计、具体功能的实现都严格遵循了软件设计工程的思想。 关键词: Socket; TCP/IP; C/S
The Implementation of LAN Chatting Program Abstract Network is the most popular way of communication between computer users, therefore a lot of chatting softwares come out; on the other hand, more communication services are provided by the ISP. This paper introduces the ideas and methods of LAN chatting program which are developed on Windows. This system is developed by the Delphi7.0 software, and uses the Socket technology to implement network communications. Database using its own database desktop. Software is based on C/S architecture. The system mainly implements the functions of user registration, login, chatting, server management etc. From requirement analysis, outline design, detailed design to coding, function test, the implementation of the function in this essay absolutely follow the process of the software development. Key words: Socket; TCP/IP; C/S
系统理论基础 TCP/IP的特点 TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。因此用户一般不涉及。TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内设计,后者为核外设计。用户服务要通过核外的应用程序才能设计,所以要使用套接字(socket)来设计。
客户机/服务器模式 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/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请求服务响应的方式
局域网聊天程序的设计目标为一个高性能的,易于使用的,面向局域网的即时信息软件。最终的程序应具有如下功能: 客户端使用简便,服务器端运行稳定。客户端与服务器端可运行在多种系统平台,具有良好的兼容性能。 客户端与服务器端功能独立,可独立运行在不同的计算机上或运行在同一台计算机上,具有最大的灵活性。 能够进行注册,设置自己的用户名和密码,自动更新其他用户的名单。 选择特定用户并与其交谈,还可以向在所有在线的用户发送消息。 服务器能够记录所有用户的登录、退出、注册等系统消息。
系统开发环境 本系统开发环境采用Borland公司新推出的Delphi7.0 Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。
系统结构设计 本系统采用C/S结构,最重要的特点是非对等相互作用,即客户与服务器处于不平等的地位,服务器拥有客户所不具备的硬软件资源,客户和服务器分别是服务的请求者和提供者。网络中各个机器的资源是不平等的,网络的真正目的就是共享这些不均等资源源,非对等相互作用特点也正好体现和适应了客观现实中资源的不均等现象。局域网上不同主机进程间通信完全是异步的,通信时机具有随机性,所以必须用这种为通信双方的数据交换提供同步的机制。
目 录 1 引 言 1 2 局域网聊天程序系统分析 1 2.1 系统理论基础 1 2.1.1 TCP/IP的特点 1 2.1.2 客户机/服务器模式 2 2.1.3 Socket介绍 3 2.2 系统需求分析 5 2.3 系统设计目标 6 2.4 系运行环境 6 2.5 系统开发环境 6 3 局域网聊天程序系统设计 7 3.1 系统结构设计 7 3.2 数据库设计 7 3.3 客户端服务器功能设计 7 3.4 客户端设计 8 3.5 服务器端设计 9 3.6 聊天中公聊和私聊的设计 10 3.7 界面设计 11 3.7.1 客户端界面设计 11 3.7.2 服务器界面设计 13 4系统实现及核心代码 14 4.1 网络通信核心代码 14 4.2 用户注册登录下线模块功能代码 15 5 系统测试 17 5.1 测试方法 17 (毕业设计) 5.2 测试结果 17 5.3 测试结论 18 5.4 程序运行截图 18 结 论 19 参考文献 20 致 谢 21 声 明 22 |