电子信息工程课程设计指导书提纲-TCP服务器端_第1页
电子信息工程课程设计指导书提纲-TCP服务器端_第2页
电子信息工程课程设计指导书提纲-TCP服务器端_第3页
电子信息工程课程设计指导书提纲-TCP服务器端_第4页
电子信息工程课程设计指导书提纲-TCP服务器端_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2基于 Linux 的 TCP 通信服务器端的实现2.1 设计要求大家好,今天,与教研室老师商量了一下题目 ,觉得你们组的这个题目有点难度 ,而且时间比较短 ,用 LINUX 可能会比 麻烦,一是它使用的 vi 命令比较复杂, 另外编译环境的安装也比较麻烦费时, 而我们每个老师要带 4 个组 没有太多时间,这周我们又要内审检查考试卷子,所以现在更改一下设计内容,不要求在 Linux 下做了, 可以在 windows 环境下来做,多线程服务器端,用 C+ 语言或 JAVA 语言。这样都做好了,如果有时间再 熟悉一下 Linux 环境,等以后毕业设计的时候再实现 Linux 下的服务器。不知道你们

2、的想法如何?也不知 道你们以前是否有熟悉 Linux 的?如有什么问题请随时跟我联系。2.1.1 设计目的在 linux 环境下 , 掌握 TCP 通信的服务器端实现方式。2.1.2 基本功能要求和设计目标(1)能够侦听客户端的连接请求;(2)建立独立的数据通信链路;(3)在通信两端建立对等的通信协议;(4)完成数据包的收发与存储;2.1.3 扩展功能实现视频监控数据的采集以及控制命令的收发。2.2 参考示例2.2.1 案例说明(1)TCP三次握手机制为实现服务器端的 TCP 通信功能,服务器端需要能够接受多个客户端的通信 请求,并建立多条 TCP 通信链路。TCP的连接建立叫做三次握手。 客

3、户端发送一个带 SYN 标志的 TCP 报文到服务器。这是三次握手过程中 的报文 1。 服务器端回应客户端的,这是三次握手中的第 2 个报文,这个报文同时 带 ACK 标志和 SYN 标志。因此它表示对刚才客户端 SYN 报文的回应;同时又 标志 SYN 给客户端,询问客户端是否准备好进行数据通讯。 客户必须再次回应服务段一个 ACK 报文,这是报文段 3,如图 1。数据传输是在连接建立后,双向的数据传送就可以开始。客户和服务器都 可以在两个方向传送数据和确认。图 1 TCP 协议建立连接三次握手过程( 2)套接字( Sockets)的概念Windows 下网络编程的规范 Windows So

4、ckets是 Windows 下得到广泛应 用的、开放的、支持多种协议的网络编程接口。Socket又称套接字,是进程之间通信的抽象连接点。可以通过一个形象的 例子来理解这个概念, 现实生活中的电话是人们联系的常用工具, 双方只要使用 两部电话机就可以交谈。在计算机世界中,两个程序就是使用 Socket 进行通信 的,一个Socket就好比一部电话机,两个程序在网络上通过一个双向链路进行通 信,这个双向链路的每一端就成为一个 Socket 。进程之间要通信,首先要建立各自的 Socket ,就像要打电话一定要先有电 话机一样,打电话时每部电话机都可以说和听。与此类似,每个 Socket 也都可

5、以进行读写操作,读写操作时分别要用到 Socket中的输入流和输出流。建立连接后, 客户程序可以向 Socket里写入请求,然后服务器会处理这个请 求,并把处理结果通过 Socket送回。服务器应用程序一般监听一个特定端口以等 待一个客户的连接请求, 当一个连接请求到达时, 客户和服务器建立一个通信连 接。在连接过程中, 客户被分配一个本地端口号并且与一个 Socket 连接,客户通 过写Socket来通知服务器, 通过读Socket来获取信息。 类似地,服务器也获取一 个本地端口号, 它需要一个新的端口号来监听原始端口上的其它连接请求。 服务 器也给它的本地端口连接一个 Socket ,读写

6、来自客户的请求。 根据网络通信的特 征,套接字可分为两类:流套接字和数据报套接字。 流套接字流套接字提供双向的、 有序的、 无重复并且无记录边界的数据流服务, 它适 用于处理大量数据。网络传输层可以将数据分散和集中到合适尺寸的数据包中。流套接字是面向连接的,通信双方进行数据交换之前,必须建立一条路径, 这样既确定了它们之间存在的路由,又保证了双方都是活动的、可彼此响应的, 但通信双方之间建立一个通信信道需要很多开支。 除此以外, 大部分面向连接的 协议为保证发送无误, 可能会需要执行额外的计算机来验证正确性, 因此会进一 步增加开支。数据报套接字数据报套接字支持双向的数据流, 但并不保证数据传

7、输的可靠性、 有序性的 和无重复性。 也就是说,一个从数据报套接字接收信息的进程有可能发现信息重 复,或者和发出时的顺序不同的情况。 此外,数据报套接字的一个重要特点是它 保留了记录边界。对于这一特点,数据报套接口采用了与现在许多包交换网络 (例 如以太网)非常类似的模型。数据报套接字是无连接的, 它不保证接收端是否正在侦听, 类似于邮政服务: 发信人把信装入邮箱即可, 至于收件人是否能收到这封信或邮局是否能按时将信 件投递到收件人处等,发件人都不得而知。因此,数据报并不可靠,需有程序员 负责管理数据报的排序和可靠性。应用程序一般仅在同一类的套接口间通信。不过只要底层的通信协议允许, 不同类型

8、的套接口也照样可以通信。本设计采用面向连接的 TCP 协议,所以使用流套接字。( 3)客户机 /服务器模型TCP/IP协议应用的主要工作模式是客户机 /服务器模式 (Client/Server,简称 C/S 模式)。在两个不同进程的通信过程中,一方发出服务请求,一方提供服务, 通常称它们为“客户进程”和“服务进程” 。显然,两个进程之间的通信实际上 是基于通信协议的进程的同步过程, 服务进程作为自愿的提供者, 为众多主机上 的客户进程提供服务。 服务进程要先于客户进程开启, 在某一确定的网络地址( IP 地址+端口号)等待客户进程的请求, 如有请求到达,服务进程采取某种方式 (并发服务或者重复

9、服务) ,直到客户进程关闭,然后服务进程继续等待下一个请求 服务的进程。服务器通常采用并发服务的方式。所谓并发服务,就是服务进程在有客户请 求到来时, 激活新的进程来专门为此客户请求提供服务, 并在客户终止请求后杀 死该进程,与此同时,原先的进程可以继续在原来的端口等待下一个客户的连接。 Socket 编程接口为新的请求创建一个专门的“数据套接字” ,并发服务器根据该 套接字创建专门的服务进程。 并发服务的最大优点是能及时相应请求, 虽然创建 新进程会增加系统开销。与此相对应的是重复服务,它利用“数据套接字” ,在 监听的进程上直接进行服务。 需要说明的是,两种类型的 Socket(SOCK_

10、STREAM 和 SOCK_DGRAM) 的工作流程是不同的,分别如图 2 和图 3 所示。服务器建立连接图 2 流套接字服务的工作流程示意图请求 /应答客户机服务器客户机图 3 数据报套接字服务的工作流程示意图2.2.2 网络结构设计1)网络拓扑结构采用星型连接Server2)使用 10/100Mbps 的网卡。3)软件实现编程语言采用 C 语言,利用 socket 进行通信 (4)开发平台 linux 。由于 linux 能够提供强大的网络支持,以及安全特性,当 前主流服务器端都采用 linux 平台构筑。2.2.3 软件设计设计流程图 :开始端口2000创建侦听Socket侦听Y建立数据通信通道数据通信N有客户端连机Y通信结束通信连路拆线结束图4 软件流程图1)建立一个用于侦听的 socket,始终在端口 2000 进行侦听 (2)当有客户端发出链路请求,侦听链路接受,并且建立数据链路,在独立的 线程进行数据通信。(3)拆分通信数据包,数据包最大长度为 1KB ,在每个数据包包头的 1 个字节, 用于描述数据包的序号,循环计数。也就是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论