10插口API技术zlp2012.ppt

上传人:本田雅阁 文档编号:2877232 上传时间:2019-05-31 格式:PPT 页数:19 大小:193.52KB
返回 下载 相关 举报
10插口API技术zlp2012.ppt_第1页
第1页 / 共19页
10插口API技术zlp2012.ppt_第2页
第2页 / 共19页
10插口API技术zlp2012.ppt_第3页
第3页 / 共19页
10插口API技术zlp2012.ppt_第4页
第4页 / 共19页
10插口API技术zlp2012.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《10插口API技术zlp2012.ppt》由会员分享,可在线阅读,更多相关《10插口API技术zlp2012.ppt(19页珍藏版)》请在三一文库上搜索。

1、第4篇 计算机网络应用程序设计, 随着网络的快速发展和日益普及,越来越多的应用转移到网 络平台上(Web主页、网上办公、电子邮件、网上聊天、BBS等)。开发 的关键就是针对应用网络而进行的通信程序设计 网络程序的设计就在于如何实现网络应用进程间的信息交互 一般说来,应用进程间的通信可以分为两种: 1、同系统中不同应用进程间的通信; 2、不同系统中应用进程间的通信; 本篇主要讨论不同系统中进程间通信的Socket技术,。TCP/IP协议是在物理网上的一组完整的网络协议集 。TCP是提供传输层服务,而IP则是提供网络层服务,TCP/IP体系结构与特点,应用层,传输层,网络层,网络接口层,TCP/I

2、P包括的协议,1、TCP/IP体系结构,。协议核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口 层三层,这三层是在操作系统内核中实现,用户一般不涉及 。用户使用(编程)时的两种介面形式 由内核心直接提供的系统调用(核内实现) 使用以库函数方式提供的各种 函数调用(核外实现) 所以说用户在编程时,用户服务需通 过核外应用程序才能实现,故需使用 套接字(Socket)来实现,2、TCP/IP特点, Windows Sockets是一套开放的、支 持多多协议下的网络编程接口 它基本上实现与协议无关,开发者可 使用Winsock来调用多种协议的功能 (常用的是TCP/IP协议),一

3、、什么是套接字(Socket),Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字规 范,它定义两台计算机间进行通信的规范(也是一种编程规范) Socket是一种识别码,应用程序可用此码来唯一识别通信端点 Socket是可被命名、被寻址的通信端点,使用中的每一个套接字 都有其类型和一个与之相连接进程 Socket存在于通信区域中(通信区域又称地址簇),只与同一区域 中的套接字进行数据交换(跨区域时,需执行某种转换进程才能实现) 每台机器上都有一个Socket,程序员可通过信道在两台机器之间 发送数据,也即:如两台计算机是利用一个通道进行通信,则这个通道的两 端就是两个套接字,

4、二、套接字(Socket)的作用, 也即:使让程序员不必了解计算机之间相互通信的底层知识,套接字屏蔽了底层通信软件和具体操作系统的差异,使得 任何两台安装了TCP协议软件和实现了套接字规范的计算机之 间的通信成为可能, 目前 WINDOWS SOCKET 支持两种套接字类型 流套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM),Socket大致位于会话层,会话 层在两台计算机之间为管理和 控制数据流提供服务 程序员在使用Socket编写代码 时,代码工作在表示层。表示 层提供一个能让应用层使用的 公共信息,而应用层并不需要 知道socket如何工作,二、Socket存在于什

5、么地方?,第10章 应用程序编程接口API,在TCP/IP中,TCP和UDP都使用端口为上层应用进程提供通信服 务(应用进程须通过相应(16位标识)端口与传输层实体进行交互) 一个进程为了连接,需指定对方端口号和IP地址。于是把这个 二元组(IP地址、端口号)称为一个接口(Socket-套接口) 进程通信时,需涉及各层协议的实现细节,为简化应用程序设 计,开发了一种称为接口(Socket)的逻辑文件,这样使进程对 通信信道的操作就像对文件一样简单 Socket就是网络编程API,即网络应用程序的编程接口 当系统把一个Socket分配给一个进程时,就是将一个进程连接 到一个信道的端点上,双方就可

6、进行连接和通信,10.1 基本概念,接口通信 模型,网 络,1、接口API(Application Programming Interface_应用编程接口),。接口API是一组调用操作系统或其他程序而获得访问服务的接口 函数。这些函数屏蔽了协议的实现细节,使应用程序变得简单 。一条连接需用一对接口标识。这对接口组成一个四元组: (本地IP地址、本地端口号、远程IP地址、远程端口号) 。对于整个Internet来说,在传输层通信的一对接口必须是唯一 的, 这样才能区分开同时通信的多个主机中的多个进程,10.2 基本接口函数, 接口API的实现,就是调用socket函数实现一些功能。 下面介绍几

7、个基本的socket调用。 1、创建socket-服务绑定:socket() 在应用程序中使用接口API时,先要创建一个接口,应用程 序调用socket()函数创建一个接口 功能:就是创建一个通信指定提供什么服务(绑定了什么服务),接上什么 设备,就是就是绑定了什么服务,原型如下,参数说明: 。family 用来指定接口使用的协议族 。Type 表示接口要使用的通信类型 。protocol 表示接口所使用的特定传输协议, 接口创建后为了进行通信,需将socket绑定在某一地址上 (本地地址/远程地址) 功能:调用函数bind(),可以将本地地址与接口绑定在一起 原型如下:,参数说明 。sock

8、fd 函数socket返回的接口描述字 。myaddr 是特定于协议的地址结构体的指针,指向本地接口地址 。addrlen 是接口地址结构体的长度,2、本地地址绑定:bind(),3、建立接口连接-绑定远端服务器地址:connect(),功能:函数connect()可以让客户机程序建立一个与TCP服务器的连接 原型如下:,参数说明 。sockfd 是函数socket返回的接口描述符; 。servaddr 指定远程服务器的接口地址; 。Addrlen 是接口地址结构体的长度,4、接口被动转换:listen( )_两个功能,1)主动接口的被动转换 因socket( )创建的接口都是主动插口,只可用

9、来进行主动连接(发出 请求)调用connect( ),不能接收连接请求 利用listen( )函数将未连接的主动接口转换为被动接口(即倾听接口), 作用是告诉操作系统该接口可以接收连接请求。故listen( )也称创建 倾听接口函数 2)设置最大请求连接数 如一个客户机的同步数据段SYN到达时(TCP用这种数据段向对方TCP 协议请求建立连接),倾听接口队列已满,TCP则忽略这个SYN数据段,。sockfd:为要转换的已绑定本地地址的接口描述符; 。backlog:设置请求队列的最大长度,表示被动(倾听)接口能够接 收的最大数目的未接收连接(相当于窗口通告),5、从被动接口的完成队列中接收一个

10、连接请求:accept( ),功 能: 一个接口被创建、用bind绑定本地地址并转换成被动模式后,接 收到连接请求后,服务器就能使用该连接与客户机进行通信 面向连接传输协议的服务器调用 accept从被动(倾听)接口的完 成连接队列中接收下一个连接请求,原型如下:,参数说明: 。Sockfd:为服务器已经创建并绑定到指定接口地址的插口描述符 。Addr: 是指向一个Internet接口地址结构体的指针 。dddrlen:是指向一个整型数的指针,6、基本接口I/O函数,1)I/O函数说明 I/O函数read()和 write(),原型如下:,2)从socket发送消息到另一个socket 函数s

11、end和sendto用来从socket发送消息,原型如下:,3)从socket接收消息, 函数recv和recvfrom用来从socket接收消息 ,原型如下:,4)用报文构造体收发数据 函数recvmsg()和sendmsg()是构造从/往指定的地址收/发数据 原型如下:,7、关闭接口通道与撤消接口, 由于TCP连接是全双工的,对每一接口来说,都可以看作在使用 读、写两个通道进行通信。故关闭一个接口通信可以有两种不同级别 的方法:单个关闭读/写通道、一同关闭读/写通道,1)关闭接口通道(三种方式)单个关闭 。SHUT_RD 关闭连接的读通道; 。SHUT_WR 关闭连接的写通道; 。SHUT_RDWR 关闭连接的读写通道。 2)撤消接口同时关闭连接的读写通道, 上述两种方式分别用两个不同的函数shutdown()和close()实现,典 型 过 程 图,1、面向连接的套接字 系统调用时序,创建socket-服务绑定,本地地址绑定,接口被动转换,连接请求,连接请求,从socket接收/发消息,绑定远端服务器地址,2、无连接协议的套接字调用时序,3、面向连接的应用程序流程图,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1