1、 计算机学院计算机科学与技术专业计算机学院计算机科学与技术专业 网络工程案例教学及网络工程案例教学及综合综合实践实践报告报告 (2012/2013 学年 第一学期) 学生姓名:学生姓名: 学生班级:学生班级: 学生学号:学生学号: 指导教师指导教师: 2013 年 1 月 3 日 目录 一.设计目的: 1 二.设计内容: 1 三.原理分析: 1 3.1 套接字的概念: . 1 3.2 WinSock 应用程序接口: . 2 3.3 工作模型 2 四.总体设计: 2 4.1 基于 TCP(面向连接)的 Socket 编程 3 4.2 基于 UDP(面向无连接)的 socket 编程 . 4 五.
2、详细设计: 4 六.运行结果:.12 一一.设计目的:设计目的: (1) 理解客户机/服务器模型的工作原理; (2) 掌握套接字的概念; (3) 掌握基于套接字的面向连接和无连接客户机/服务器程序的设计原理和相关的 WinSock API 函数; (4) 掌握基于 TCP 和 UDP 的程序设计方法。 二二.设计内容:设计内容: (一) 基于 TCP 的应用编程:编写一个 Client/Server 程序对,服务器程序负责接收客户 机进程的连接请求,并在服务器进程与客户机进程之间建立通信连接,然后接收客 户机进程的传送数据并将其显示在服务器端,同时将欢迎信息发送给客户机进程, 最后关闭该客户机
3、进程的连接;客户机进程首先提出对指定服务器的连接请求,建 立连接后向服务器进程发送已经建立连接的数据信息,同时接收服务器进程发送过 来的数据并显示在客户端。采用 WinSock API 实现代码。 (二) 基于 UDP 的应用编程: 实现一个基于 UDP 的客户机/服务器程序, 通过设定不同的命 令行参数来确定应用进程的不同角色,即充当客户机进程还是服务器进程。当两个 进程运行后,彼此之间可以轮流发送消息,对方接收后显示出来。 三三.原理分析:原理分析: 3.1 套接字的概念:套接字的概念: 套接字(Socket) 1. Socket 的出现,使得程序员可以很方便的访问 TCP/IP,从而开发
4、各种网络应用的程序 2. 套接字存在于通信区域中,通信区域也叫地址族,他是一个抽象的概念,主要用于通过 套接字通信的进程的共有特性综合在一起。套接字通常只与同一个区域的套接字交换数据。 套接字的类型 1. 流式套接字(SOCK_STREAM) 提供面向连接的, 可靠的数据传输服务, 数据无差错, 无重复的发送, 且按发送的顺序接收, 基于 TCP 协议 ; 2. 数据保式套接字(SOCK_DGRAM) 计算机学院计算机网络综合实验 2 提供无连接的服务, 数据包以独立包形式发送, 不提供无错误的保证, 数据可能丢失或重复, 且接收顺序混乱,基于 UDP 协议。 3.2 WinSock 应用程序
5、接口:应用程序接口: WinSock 是一个基于套接字模型的 API(应用程序接口),在 Microsoft Windows 操作系 统类中使用。它在 Berkekley 接口函数的基础上,还增加了基于消息驱动机制的 Windows 扩展函数。 其中 WinSock 1.1 只支持 TCP/IP 网络, WinSock2.0 则增加了对更多协议的支持。 WinSock 包括以下 3 类的函数: 1.WinSock API 包含的 Berkeley Socket 函数。这类函数分两部分,其一是用于网络 I/P 的 函数;其二是不涉及网络 I/O,在本地端完成的函数。 2.检索有关域名,通信服务和
6、协议等 Internet 信息的数据库函数。 3.Berkekley Socket API 的 Windows 转用的扩展函数。 3.3 工作模型工作模型 网络应用程序一般是以客户机/服务器的模型的方式工作的。 而因特网便是客户机/服务 器模型的一个典型应用。在这种工作方式中,一个服务器程序通常事先启动,并在一个熟知 端口侦听对服务器的请求,如 FTP 服务器,Web 服务器等。当客户机应用程序需要某种服务 时,需向提供这种服务的服务器发出请求,服务器在接收到请求后,向客户机发出相应请求 信息。这样客户机应用程序和服务器程序之间便建立了通信连接,此后可以进行数据通信。 通信任务完成后需要关闭它们之间的通信连接。基于 TCP(面向连接)和基于 UDP(面向非 连接)应用程序的工作流程如下所示: 四四.总体设计:总体设计: 4.1 基于基于 TCP(面向连接)的(面向连接)的 Socket 编程:编程: 服务器端顺序: 服务器启 动监听 客户程序 请求 服务器响 应请求 数据通信 通信连接 建立 通信连接 关闭 计算机学院计算