网站大量收购独家精品文档,联系QQ:2885784924

专接本网络操作系统第五章网络操作系统的接口概念.ppt

专接本网络操作系统第五章网络操作系统的接口概念.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络操作系统;学习目标;本章内容;课程议题;一、应用程序接口的概念;Windows API;;;应用程序接口(API);开放API接口分类;一、TLI/XTI函数;1.TLI/XTI结构;2.TLI/XTI实例;二、TLI/XTI的服务模式;课程议题;一、套接字;Socket协议的形象描述;通信原理;socket;套接字分类;套接字之间的连接过程分为三步骤;2 套接字的应用;练习;练习;;课程议题;一、winsock概述;;二、使用WinSock实现网络通信;服务器工作的大致过程;客户端工作的大致过程;;二、WinSock的使用及重要函数讲解:;;2建立通信连接;一个套接字用socket()创建后,它其实还没有与任何特定的本地或目的地址相关联。在很多情况下,应用程序并不关心他们使用的本地地址,这时可以不调用此函数,而由协议软件为他们选择一个。如果要使用指定的端口,则创建了一个套接口之后,服务器必须调用bind()函数给套接口分配一个本地协议地址,捆绑端口。 函数原形: int?bind(int?sockfd,const?struct?sockaddr?*myaddr,socklen_t?addrlen); 参数sockfd是绑定的套接字描述符,是由socket返回的;myaddr 是与套接字绑定的一个本地地址结构,其长度可变,结构随协议族的不 同而不同;addrlen是myaddr的长度。 返回0表示函数调用成功,返回-1(SOCKET_ERROR)表示出错。 ; connect()函数:将套接字连接到目的地址? 初始创建的套接字并未与任何外地目的地址关联,客户端调用connect()为套接字绑定一个永久的目的地址,将它置于已经连接的状态。对数据流方式的套接字,必须在传输数据前,调用connect()构造一个与目的地的TCP连接,并不能构造连接时返回一个差错代码。如果是数据报方式则不是必须在传输数据之前调用connect。 函数原形: int?connect(int?s,const?struct?sockaddr?*servaddr,socklen_t?addrlen); s是本地套接字描述符;servaddr是指向对方套接字地址结构的指针,这里的套接口地址是服务器的套接口地址,包括服务器的IP地址和端口号,指明了要连接到的服务器;addrlen是对方套接字地址结构的长度。 返回0表示调用成功,返回-1表示出错。 ; listen()函数:设置等待连接状态 对于一个服务器的程序,当申请到套接字,并调用bind()与本地地址绑定后,就应该等待某个客户机的请求连接。函数listen()就是把套接字置为这种状态,它仅被服务器调用,它使服务器的套接口成为一个监听套接口。事实上当用socket()函数建立一个套接口时,它是一个主动套接口,也就是说它应该调用connect()函数向服务器发起连接的套接口,函数Listen()将此套接口转变为被动套接口,使它接受客户向它发出的连接请求。 函数原形: int?listen(int?sockfd,int?backlog); ? 参数sockfd是套接字描述符;backlog是指明等待连接的队列的最大长度,可以取1-5。 返回0表示调用成功,返回-1表示出错。 ; accept()函数:接收连接请求 服务器进程使用系统调用socket,bind和listen创建一个套接字,将它绑定到知名的端口,并指定连接请求的队列长度,进入监听状态,当有连接请求到达时,服务器调用accept()接收连接请求,它返回一个新建立的连接。 函数原形: int?accept(int?sockfd,struct?sockaddr?*?cliaddr,socklen_t?*addrlen); 参数sockfd是套接字描述符;指针cliaddr用于返回请求连接的客户方套接字地址;指针addrlen用于返回该地址结构的长度。 如果没有发生错误,则返回新的套接字,否则返回INVALID_SOCKET。 ;;3 发送和接收数据 当服务器端和客户端建立连接以后,就可以在两台机器之间传送数据,也即是用winsock?API函数在两台连接成功的机器之间进行通信。下面我们介绍几个传送数据的函数,无论是客户端,还是服务器端都可以使用这些函数: 在数据流方式中,一个连接建立以后,或者在数据报方式下,调用了connect()进行了套接字与目的地址的绑定后,就可以调用send()和recv()进行数据传输。 ;;;; 如果我们以数据报的方式通信

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档