WEB开发网
开发学院操作系统Linux/Unix TCP/IP 应用程序的通信连接模式 阅读

TCP/IP 应用程序的通信连接模式

 2008-08-23 08:18:32 来源:WEB开发网   
核心提示: Client/Server 建立方式设计概述 一个 Client 连接一个 Server如果只有两台机器之间连接,那么一个是 Client,TCP/IP 应用程序的通信连接模式(5),另一个是 Server,如下面图 3 所示,Server 用一个有限循环来处理每一个可用的端口连接,由于新

Client/Server 建立方式设计概述

一个 Client 连接一个 Server

如果只有两台机器之间连接,那么一个是 Client,另一个是 Server,如下面图 3 所示。这是最简单的 TCP/IP 的应用,也是 TCP/IP 应用早期的 Peer to Peer (P2P) 概念。其流程基本如图 4 所示。

图 3 TCP/IP 应用单点 Client/Server

TCP/IP 应用程序的通信连接模式

图 4 显示了 TCP/IP 应用编程最基本的 Client/Server 模式,显示了基本的 Client/Server 通信所需要调用的 Socket APIs 以及顺序。

图 4 TCP/IP 应用编程基本 Client/Server 模式

TCP/IP 应用程序的通信连接模式

多个 Client 连接一个 Server

多个 Client 同时连接一个 Server 是 TCP/IP 应用的主流形式,如图 5 所示,其中 Client 连接数可以从几个到成千上万。

图 5 TCP/IP 应用多 Client 端的 Client/Server

TCP/IP 应用程序的通信连接模式

由于 socket APIs 缺省方式下都是阻塞方式的,实现多个 Client 同时连接一个 Server 就需要特别的设计。其实现方式可以有多种不同的设计,这其中也涉及 I/O 模式设计。下面将展开介绍其中几种设计形式。

利用一个 Client 连接一个 Server 形式实现多 Client 连接

从程序设计角度讲,只要 Client 和 Server 端口是一对一形式,那么就属于一个 Client 连接一个 Server 形式。在处理多个 Client 端连接时,Server 端轮流使用多个端口建立多个 Client-Server 连接,连接关闭后,被释放端口可以被循环使用。在这种多连接形式中需要谨慎处理 Client 端如何获取使用 Server 端的可用端口。比如图 6 显示 Server 有一个服务于所有进程的进程可以先把 Server 端的可用端口发送给 Client 端,Client 端再使用该端口建立连接来处理业务。Server 针对每一个 Client 连接用一个专门的进程来处理。由于可用端口数有限,Server 用一个有限循环来处理每一个可用的端口连接。由于新端口需要用 bind() 来绑定,所以需要从 bind() 开始到 close() 结束都需要包含在循环体内。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:TCP IP 应用程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接