收藏 分销(赏)

插口API技术.pptx

上传人:天**** 文档编号:4256636 上传时间:2024-08-31 格式:PPTX 页数:18 大小:243.50KB
下载 相关 举报
插口API技术.pptx_第1页
第1页 / 共18页
插口API技术.pptx_第2页
第2页 / 共18页
插口API技术.pptx_第3页
第3页 / 共18页
插口API技术.pptx_第4页
第4页 / 共18页
插口API技术.pptx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、。TCP/IPTCP/IP协议是在物理网上的一组完整的网络协议集协议是在物理网上的一组完整的网络协议集。TCPTCP是提供传输层服务,而是提供传输层服务,而IPIP则是提供网络层服务则是提供网络层服务n TCP/IP TCP/IP体系结构与特点体系结构与特点应用层应用层传输层传输层网络层网络层网络接口层网络接口层TCP/IPTCP/IP包括的协议包括的协议 1 1 1 1、TCP/IPTCP/IPTCP/IPTCP/IP体系结构体系结构体系结构体系结构TCP/IPTCP/IP协议核心与应用程序关系图协议核心与应用程序关系图 。协议核心部分是协议核心部分是传输层协议传输层协议(TCP(TCP、U

2、DP)UDP),网络层协议网络层协议(IP)(IP)和物理接口和物理接口 层层三层,三层,这三层是在操作系统内核中实现,用户一般不涉及这三层是在操作系统内核中实现,用户一般不涉及。用户使用用户使用(编程编程)时时的两种介面形式的两种介面形式 由内核心直接提供的系统调用由内核心直接提供的系统调用(核内实现核内实现)使用以库函数方式提供的各种使用以库函数方式提供的各种 函数调用函数调用(核外实现核外实现)所以说用户在编程时,所以说用户在编程时,用户服务需通用户服务需通 过核外应用程序才能实现,过核外应用程序才能实现,故需使用故需使用 套接字套接字(Socket)(Socket)来实现来实现2 2

3、2 2、TCP/IPTCP/IPTCP/IPTCP/IP特点特点特点特点 Windows SocketsWindows Sockets是一套开放的、支是一套开放的、支 持多多协议下的持多多协议下的网络编程接口网络编程接口 它基本上实现与协议无关,开发者可它基本上实现与协议无关,开发者可 使用使用WinsockWinsock来调用多种协议的功能来调用多种协议的功能 (常用的是常用的是TCP/IPTCP/IP协议协议)一、什么是套接字一、什么是套接字(Socket)(Socket)SocketSocketSocketSocket是建立在传输层协议是建立在传输层协议(主要是主要是TCPTCP和和UD

4、P)UDP)上的一种套接字规上的一种套接字规 范,它定义两台计算机间进行通信的规范(也是一种编程规范)范,它定义两台计算机间进行通信的规范(也是一种编程规范)SocketSocketSocketSocket是一种识别码是一种识别码是一种识别码是一种识别码,应用程序可用此码来唯一识别通信端点,应用程序可用此码来唯一识别通信端点,应用程序可用此码来唯一识别通信端点,应用程序可用此码来唯一识别通信端点 SocketSocketSocketSocket是可是可被命名、被寻址被命名、被寻址的通信端点,使用中的每一个套接字的通信端点,使用中的每一个套接字 都有其类型和一个与之相连接进程都有其类型和一个与之

5、相连接进程 SocketSocketSocketSocket存在于通信区域中存在于通信区域中(通信区域又称地址簇通信区域又称地址簇),只与同一区域,只与同一区域 中的套接字进行数据交换中的套接字进行数据交换(跨区域时,需执行某种转换进程才能实现跨区域时,需执行某种转换进程才能实现)每每每每台机器上都有一个台机器上都有一个台机器上都有一个台机器上都有一个SocketSocketSocketSocket,程序员可通过信道在两台机器之间,程序员可通过信道在两台机器之间,程序员可通过信道在两台机器之间,程序员可通过信道在两台机器之间 发送数据发送数据发送数据发送数据 也即:如也即:如两台计算机是利用一

6、个通道进行通信,则这个通道的两两台计算机是利用一个通道进行通信,则这个通道的两 端就是两个套接字端就是两个套接字 二、套接字二、套接字二、套接字二、套接字(Socket)(Socket)(Socket)(Socket)的作用的作用的作用的作用 也即:使让程序员不必了解计算机之间相互通信的底层知识也即:使让程序员不必了解计算机之间相互通信的底层知识也即:使让程序员不必了解计算机之间相互通信的底层知识也即:使让程序员不必了解计算机之间相互通信的底层知识 套接字套接字屏蔽了底层通信软件和具体操作系统的差异屏蔽了底层通信软件和具体操作系统的差异,使得,使得 任何两台安装了任何两台安装了TCPTCP协议

7、软件和实现了套接字规范的计算机之协议软件和实现了套接字规范的计算机之 间的通信成为可能间的通信成为可能 目前目前目前目前 WINDOWS SOCKET WINDOWS SOCKET 支持两种套接字类型支持两种套接字类型 流套接字流套接字(SOCK_STREAM)(SOCK_STREAM)、数据报套接字数据报套接字(SOCK_DGRAM)(SOCK_DGRAM)基本套接口应用基本套接口应用基本套接口应用基本套接口应用 1 1、UDPUDP无连接的、不可靠的数据报协议无连接的、不可靠的数据报协议 【应用应用】:DNS,NFS,SNMP,ICQDNS,NFS,SNMP,ICQ 2 2、TCPTCP

8、面向连接的、可靠的字节流协议面向连接的、可靠的字节流协议 【应用应用】:www,telnet,ftpwww,telnet,ftpqq SocketSocketSocketSocket大致位于会话层大致位于会话层大致位于会话层大致位于会话层,会话,会话,会话,会话 层在两台计算机之间为管理和层在两台计算机之间为管理和层在两台计算机之间为管理和层在两台计算机之间为管理和 控制数据流提供服务控制数据流提供服务控制数据流提供服务控制数据流提供服务 qq 程序员在使用程序员在使用程序员在使用程序员在使用SocketSocketSocketSocket编写代码编写代码编写代码编写代码 时,时,时,时,代码

9、工作在表示层代码工作在表示层代码工作在表示层代码工作在表示层。表示。表示。表示。表示 层提供一个能让应用层使用的层提供一个能让应用层使用的层提供一个能让应用层使用的层提供一个能让应用层使用的 公共信息,而应用层并不需要公共信息,而应用层并不需要公共信息,而应用层并不需要公共信息,而应用层并不需要 知道知道知道知道socketsocketsocketsocket如何工作如何工作如何工作如何工作二、二、SocketSocket存在于什么地方?存在于什么地方?第第1010章章 应用程序编程接口应用程序编程接口API 在在在在TCP/IPTCP/IPTCP/IPTCP/IP中,中,中,中,TCPTCP

10、TCPTCP和和和和UDPUDPUDPUDP都使用端口为上层都使用端口为上层都使用端口为上层都使用端口为上层应用进程应用进程应用进程应用进程提供通信服提供通信服提供通信服提供通信服 务务务务(应用进程须通过相应应用进程须通过相应应用进程须通过相应应用进程须通过相应(16161616位标识位标识位标识位标识)端口与传输层实体进行交互端口与传输层实体进行交互端口与传输层实体进行交互端口与传输层实体进行交互)一个进程为了连接,需指定对方端口号一个进程为了连接,需指定对方端口号一个进程为了连接,需指定对方端口号一个进程为了连接,需指定对方端口号和和和和IPIPIPIP地址。于是把这个地址。于是把这个地

11、址。于是把这个地址。于是把这个 二元组二元组二元组二元组(IP(IP(IP(IP地址、端口号地址、端口号地址、端口号地址、端口号)称为一个称为一个称为一个称为一个接口接口接口接口(Socket-(Socket-(Socket-(Socket-套接口套接口套接口套接口)进程通信时,需涉及各层协议的实现细节,进程通信时,需涉及各层协议的实现细节,进程通信时,需涉及各层协议的实现细节,进程通信时,需涉及各层协议的实现细节,为简化应用程序设为简化应用程序设为简化应用程序设为简化应用程序设 计,开发了一种称为计,开发了一种称为计,开发了一种称为计,开发了一种称为接口接口接口接口(Socket)(Sock

12、et)(Socket)(Socket)的逻辑文件,这样的逻辑文件,这样的逻辑文件,这样的逻辑文件,这样使进程对使进程对使进程对使进程对 通信信道的操作就像对文件一样简单通信信道的操作就像对文件一样简单通信信道的操作就像对文件一样简单通信信道的操作就像对文件一样简单 SocketSocketSocketSocket就是网络编程就是网络编程就是网络编程就是网络编程APIAPIAPIAPI,即网络应用程序的编程接口,即网络应用程序的编程接口,即网络应用程序的编程接口,即网络应用程序的编程接口 当系统把一个当系统把一个当系统把一个当系统把一个SocketSocketSocketSocket分配给一个进

13、程时,就是将一个进程连接分配给一个进程时,就是将一个进程连接分配给一个进程时,就是将一个进程连接分配给一个进程时,就是将一个进程连接 到一个信道的端点上,双方就可进行连接和通信到一个信道的端点上,双方就可进行连接和通信到一个信道的端点上,双方就可进行连接和通信到一个信道的端点上,双方就可进行连接和通信10.110.1 基本概念基本概念基本概念基本概念接口层接口层接口层接口层客户进层客户进层服务器进层服务器进层接口通信接口通信接口通信接口通信 模型模型模型模型 网网 络络 1 1、接口接口接口接口API(Application Programming Interface_API(Applicat

14、ion Programming Interface_API(Application Programming Interface_API(Application Programming Interface_应用编程接口应用编程接口应用编程接口应用编程接口)。接口。接口。接口。接口APIAPIAPIAPI是是是是一组调用一组调用一组调用一组调用操作系统操作系统操作系统操作系统或或或或其他程序其他程序其他程序其他程序而获得访问服务的接口而获得访问服务的接口而获得访问服务的接口而获得访问服务的接口 函数。这些函数屏蔽了协议的实现细节函数。这些函数屏蔽了协议的实现细节函数。这些函数屏蔽了协议的实现细节函

15、数。这些函数屏蔽了协议的实现细节,使应用程序变得简单使应用程序变得简单使应用程序变得简单使应用程序变得简单。一条连接需用一对接口标识。一条连接需用一对接口标识。一条连接需用一对接口标识。一条连接需用一对接口标识。这对接口组成一个。这对接口组成一个。这对接口组成一个。这对接口组成一个四元组四元组四元组四元组:(本地本地本地本地IPIPIPIP地址、本地端口号、远程地址、本地端口号、远程地址、本地端口号、远程地址、本地端口号、远程IPIPIPIP地址、远程端口号地址、远程端口号地址、远程端口号地址、远程端口号)。对于整个对于整个对于整个对于整个InternetInternetInternetInt

16、ernet来说,在传输层通信的来说,在传输层通信的来说,在传输层通信的来说,在传输层通信的一对接口必须是唯一一对接口必须是唯一一对接口必须是唯一一对接口必须是唯一 的的的的,这样才能区分开同时通信的多个主机中的多个进程这样才能区分开同时通信的多个主机中的多个进程这样才能区分开同时通信的多个主机中的多个进程这样才能区分开同时通信的多个主机中的多个进程10.210.2 基本接口函数基本接口函数基本接口函数基本接口函数 接口接口接口接口APIAPIAPIAPI的实现,就是调用的实现,就是调用的实现,就是调用的实现,就是调用socketsocketsocketsocket函数实现一些功能。函数实现一些

17、功能。函数实现一些功能。函数实现一些功能。下面介绍几个基本的下面介绍几个基本的下面介绍几个基本的下面介绍几个基本的socketsocketsocketsocket调用。调用。调用。调用。1 1 1 1、创建、创建、创建、创建socket-socket-socket-socket-服务绑定:服务绑定:服务绑定:服务绑定:socket()socket()socket()socket()在应用程序中使用接口在应用程序中使用接口在应用程序中使用接口在应用程序中使用接口APIAPIAPIAPI时,先要创建一个接口,应用程时,先要创建一个接口,应用程时,先要创建一个接口,应用程时,先要创建一个接口,应用程

18、 序调用序调用序调用序调用socketsocketsocketsocket()函数创建一个接口()函数创建一个接口()函数创建一个接口()函数创建一个接口 功能:功能:功能:功能:就是创建一个通信指定提供什么服务就是创建一个通信指定提供什么服务就是创建一个通信指定提供什么服务就是创建一个通信指定提供什么服务(绑定了什么服务绑定了什么服务绑定了什么服务绑定了什么服务),接上什么,接上什么,接上什么,接上什么 设备,就是就是绑定了什么服务,设备,就是就是绑定了什么服务,设备,就是就是绑定了什么服务,设备,就是就是绑定了什么服务,原型如下原型如下 参数说明:参数说明:参数说明:参数说明:。famil

19、yfamilyfamilyfamily 用来指定接口使用的协议族用来指定接口使用的协议族用来指定接口使用的协议族用来指定接口使用的协议族 。Type Type Type Type 表示接口要使用的通信类型表示接口要使用的通信类型表示接口要使用的通信类型表示接口要使用的通信类型 。protocolprotocolprotocolprotocol 表示接口所使用的特定传输协议表示接口所使用的特定传输协议表示接口所使用的特定传输协议表示接口所使用的特定传输协议 接口创建后为了进行通信,需将接口创建后为了进行通信,需将接口创建后为了进行通信,需将接口创建后为了进行通信,需将socketsocketso

20、cketsocket绑定在某一地址上绑定在某一地址上绑定在某一地址上绑定在某一地址上 (本地地址本地地址本地地址本地地址/远程地址远程地址远程地址远程地址)功能:功能:功能:功能:调用函数调用函数调用函数调用函数bindbindbindbind(),可以将本地地址与接口绑定在一起(),可以将本地地址与接口绑定在一起(),可以将本地地址与接口绑定在一起(),可以将本地地址与接口绑定在一起 原型如下:原型如下:原型如下:原型如下:参数说明参数说明参数说明参数说明 。sockfdsockfdsockfdsockfd 函数函数函数函数socketsocketsocketsocket返回的接口描述字返回

21、的接口描述字返回的接口描述字返回的接口描述字 。myaddrmyaddrmyaddrmyaddr 是特定于协议的地址结构体的指针,指向本地接口地址是特定于协议的地址结构体的指针,指向本地接口地址是特定于协议的地址结构体的指针,指向本地接口地址是特定于协议的地址结构体的指针,指向本地接口地址 。addrlenaddrlenaddrlenaddrlen 是接口地址结构体的长度是接口地址结构体的长度是接口地址结构体的长度是接口地址结构体的长度2 2 2 2、本地地址绑定:、本地地址绑定:、本地地址绑定:、本地地址绑定:bindbindbindbind()()()()3 3 3 3、建立接口连接、建立

22、接口连接、建立接口连接、建立接口连接-绑定远端服务器地址:绑定远端服务器地址:绑定远端服务器地址:绑定远端服务器地址:connect()connect()connect()connect()功能功能功能功能:函数函数函数函数connect()connect()connect()connect()可以让客户机程序建立一个与可以让客户机程序建立一个与可以让客户机程序建立一个与可以让客户机程序建立一个与TCPTCPTCPTCP服务器的连接服务器的连接服务器的连接服务器的连接 原型如下:原型如下:参数说明参数说明 。sockfdsockfd 是函数是函数socketsocket返回的接口描述符;返回的

23、接口描述符;。servaddrservaddr 指定远程服务器的接口地址;指定远程服务器的接口地址;。AddrlenAddrlen 是接口地址结构体的长度是接口地址结构体的长度4 4 4 4、接口被动转换、接口被动转换、接口被动转换、接口被动转换:listen():listen():listen():listen()_ _ _ _两个功能两个功能两个功能两个功能1 1 1 1)主动接口的被动转换)主动接口的被动转换)主动接口的被动转换)主动接口的被动转换 因因因因socket()socket()socket()socket()创建的接口都是主动插口,只可用来进行主动连接创建的接口都是主动插口,

24、只可用来进行主动连接创建的接口都是主动插口,只可用来进行主动连接创建的接口都是主动插口,只可用来进行主动连接(发出发出发出发出 请求请求请求请求)调用调用调用调用connect()connect()connect()connect(),不能接收连接请求不能接收连接请求不能接收连接请求不能接收连接请求 利用利用利用利用listen()listen()listen()listen()函数将未连接的主动接口转换为被动接口函数将未连接的主动接口转换为被动接口函数将未连接的主动接口转换为被动接口函数将未连接的主动接口转换为被动接口(即倾听接口即倾听接口即倾听接口即倾听接口),作用是告诉操作系统该接口可以

25、接收连接请求。故作用是告诉操作系统该接口可以接收连接请求。故作用是告诉操作系统该接口可以接收连接请求。故作用是告诉操作系统该接口可以接收连接请求。故listen()listen()listen()listen()也称创建也称创建也称创建也称创建 倾听接口函数倾听接口函数倾听接口函数倾听接口函数 2 2 2 2)设置最大请求连接数)设置最大请求连接数)设置最大请求连接数)设置最大请求连接数 如一个客户机的如一个客户机的如一个客户机的如一个客户机的同步数据段同步数据段同步数据段同步数据段SYNSYNSYNSYN到达时到达时到达时到达时(TCPTCPTCPTCP用这种数据段向对方用这种数据段向对方用

26、这种数据段向对方用这种数据段向对方TCPTCPTCPTCP 协议请求建立连接协议请求建立连接协议请求建立连接协议请求建立连接),倾听接口队列已满,倾听接口队列已满,倾听接口队列已满,倾听接口队列已满,TCPTCPTCPTCP则忽略这个则忽略这个则忽略这个则忽略这个SYNSYNSYNSYN数据段数据段数据段数据段。sockfdsockfdsockfdsockfd:为要转换的已绑定本地地址的接口描述符;为要转换的已绑定本地地址的接口描述符;为要转换的已绑定本地地址的接口描述符;为要转换的已绑定本地地址的接口描述符;。backlogbacklogbacklogbacklog:设置请求队列的最大长度,

27、表示被动(倾听)接口能够接设置请求队列的最大长度,表示被动(倾听)接口能够接设置请求队列的最大长度,表示被动(倾听)接口能够接设置请求队列的最大长度,表示被动(倾听)接口能够接 收的最大数目的未接收连接收的最大数目的未接收连接收的最大数目的未接收连接收的最大数目的未接收连接(相当于窗口通告相当于窗口通告相当于窗口通告相当于窗口通告)5 5 5 5、从被动接口的完成队列中接收一个连接请求、从被动接口的完成队列中接收一个连接请求、从被动接口的完成队列中接收一个连接请求、从被动接口的完成队列中接收一个连接请求:accept():accept():accept():accept()功功功功 能:能:能

28、:能:一个接口被创建、用一个接口被创建、用一个接口被创建、用一个接口被创建、用bindbindbindbind绑定本地地址并转换成被动模式后,接绑定本地地址并转换成被动模式后,接绑定本地地址并转换成被动模式后,接绑定本地地址并转换成被动模式后,接 收到连接请求后,服务器就能使用该连接与客户机进行通信收到连接请求后,服务器就能使用该连接与客户机进行通信收到连接请求后,服务器就能使用该连接与客户机进行通信收到连接请求后,服务器就能使用该连接与客户机进行通信 面向连接传输协议的服务器调用面向连接传输协议的服务器调用面向连接传输协议的服务器调用面向连接传输协议的服务器调用 acceptacceptac

29、ceptaccept从被动从被动从被动从被动(倾听倾听倾听倾听)接口的完接口的完接口的完接口的完 成连接队列中接收下一个连接请求,成连接队列中接收下一个连接请求,成连接队列中接收下一个连接请求,成连接队列中接收下一个连接请求,原型如下:原型如下:参数说明:参数说明:参数说明:参数说明:。SockfdSockfdSockfdSockfd:为服务器已经创建并绑定到指定接口地址的插口描述符为服务器已经创建并绑定到指定接口地址的插口描述符为服务器已经创建并绑定到指定接口地址的插口描述符为服务器已经创建并绑定到指定接口地址的插口描述符 。AddrAddrAddrAddr:是指向一个是指向一个是指向一个是

30、指向一个InternetInternetInternetInternet接口地址结构体的指针接口地址结构体的指针接口地址结构体的指针接口地址结构体的指针 。dddrlendddrlendddrlendddrlen:是指向一个整型数的指针是指向一个整型数的指针是指向一个整型数的指针是指向一个整型数的指针6 6、基本接口、基本接口I/OI/O函数函数 1 1 1 1)I/OI/OI/OI/O函数说明函数说明函数说明函数说明 I/O I/O函数函数readread()和()和 writewrite(),(),原型如下:原型如下:2 2 2 2)从)从)从)从socketsocketsocketsoc

31、ket发送消息到另一个发送消息到另一个发送消息到另一个发送消息到另一个socketsocketsocketsocket 函数函数函数函数sendsendsendsend和和和和sendtosendtosendtosendto用来从用来从用来从用来从socketsocketsocketsocket发送消息,发送消息,发送消息,发送消息,原型如下:原型如下:#include#include ssize_t send(int sockfd,const void*buff,size_t nbytes,int flags);ssize_t send(int sockfd,const void*buff,

32、size_t nbytes,int flags);ssize_t sendto(int sockfd,const void*msg,size_t nbytes,int flags,const structssize_t sendto(int sockfd,const void*msg,size_t nbytes,int flags,const struct sockaddr*to,size_t tolen)sockaddr*to,size_t tolen);返回:发送字节数返回:发送字节数返回:发送字节数返回:发送字节数-成功,成功,成功,成功,-1-1-1-1-失败失败失败失败 3 3 3

33、3)从)从)从)从socketsocketsocketsocket接收消息接收消息接收消息接收消息 函数函数函数函数recvrecvrecvrecv和和和和recvfromrecvfromrecvfromrecvfrom用来从用来从用来从用来从socketsocketsocketsocket接收消息接收消息接收消息接收消息,原型如下:原型如下:#include#include#include#include ssize_t recv(int sockfd,void*buf,size_t len,int flags);ssize_t recv(int sockfd,void*buf,size_t

34、 len,int flags);ssize_t recv(int sockfd,void*buf,size_t len,int flags);ssize_t recv(int sockfd,void*buf,size_t len,int flags);ssize_t recvfrom(int sockfd,void*buf,size_t len,int flags,ssize_t recvfrom(int sockfd,void*buf,size_t len,int flags,ssize_t recvfrom(int sockfd,void*buf,size_t len,int flags,

35、ssize_t recvfrom(int sockfd,void*buf,size_t len,int flags,struct sockaddr*from,size_t fromlen);struct sockaddr*from,size_t fromlen);struct sockaddr*from,size_t fromlen);struct sockaddr*from,size_t fromlen);返回:接收字节数返回:接收字节数返回:接收字节数返回:接收字节数-成功,成功,成功,成功,-1-1-1-1-失败失败失败失败4 4 4 4)用报文构造体收发数据)用报文构造体收发数据)用报

36、文构造体收发数据)用报文构造体收发数据 函数函数函数函数recvmsg()recvmsg()recvmsg()recvmsg()和和和和sendmsg()sendmsg()sendmsg()sendmsg()是构造从是构造从是构造从是构造从/往指定的地址收往指定的地址收往指定的地址收往指定的地址收/发数据发数据发数据发数据 原型如下:原型如下:原型如下:原型如下:7 7 7 7、关闭接口通道与撤消接口、关闭接口通道与撤消接口、关闭接口通道与撤消接口、关闭接口通道与撤消接口 由于由于由于由于TCPTCPTCPTCP连接是全双工的,对每一接口来说,都可以看作在使用连接是全双工的,对每一接口来说,都

37、可以看作在使用连接是全双工的,对每一接口来说,都可以看作在使用连接是全双工的,对每一接口来说,都可以看作在使用读、写两个通道进行通信。故关闭一个接口通信可以有读、写两个通道进行通信。故关闭一个接口通信可以有读、写两个通道进行通信。故关闭一个接口通信可以有读、写两个通道进行通信。故关闭一个接口通信可以有两种不同级别两种不同级别两种不同级别两种不同级别的方法:的方法:的方法:的方法:单个关闭读单个关闭读单个关闭读单个关闭读/写通道、一同关闭读写通道、一同关闭读写通道、一同关闭读写通道、一同关闭读/写通道写通道写通道写通道1 1 1 1)关闭接口通道)关闭接口通道)关闭接口通道)关闭接口通道(三种方

38、式三种方式三种方式三种方式)单个关闭单个关闭单个关闭单个关闭 。SHUT_RD SHUT_RD SHUT_RD SHUT_RD 关闭连接的读通道;关闭连接的读通道;关闭连接的读通道;关闭连接的读通道;。SHUT_WR SHUT_WR SHUT_WR SHUT_WR 关闭连接的写通道;关闭连接的写通道;关闭连接的写通道;关闭连接的写通道;。SHUT_RDWR SHUT_RDWR SHUT_RDWR SHUT_RDWR 关闭连接的读写通道。关闭连接的读写通道。关闭连接的读写通道。关闭连接的读写通道。2 2 2 2)撤消接口)撤消接口)撤消接口)撤消接口 同时关闭连接的读写通道同时关闭连接的读写通道

39、同时关闭连接的读写通道同时关闭连接的读写通道 上述两种方式分别用两个不同的函数上述两种方式分别用两个不同的函数上述两种方式分别用两个不同的函数上述两种方式分别用两个不同的函数shutdown()shutdown()shutdown()shutdown()和和和和close()close()close()close()实现实现实现实现 shutdown()shutdown()shutdown()shutdown()原型原型原型原型#include#include#include#include int shutdown(int sockfd,int howto);int shutdown(int

40、 sockfd,int howto);int shutdown(int sockfd,int howto);int shutdown(int sockfd,int howto);返回:返回:返回:返回:0-0-0-0-成功,成功,成功,成功,-1-1-1-1-出错出错出错出错 Close()Close()Close()Close()原型原型原型原型#include#include#include#include int close(int sockfd);int close(int sockfd);int close(int sockfd);int close(int sockfd);返回:返回:返回:返回:0-0-0-0-成功,成功,成功,成功,-1-1-1-1-出错出错出错出错 典典型型过过程程图图1 1、面向连接的套接字、面向连接的套接字系统调用时序系统调用时序 创建socket-服务绑定本地地址绑定接口被动转换连接请求连接请求从socket接收/发消息绑定远端服务器地址2 2、无连接协议的套接字调用时序、无连接协议的套接字调用时序、无连接协议的套接字调用时序、无连接协议的套接字调用时序3 3、面向连接的应用程序流程图、面向连接的应用程序流程图、面向连接的应用程序流程图、面向连接的应用程序流程图

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服