套接字网络编程接口剖析.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
套接字网络编程接口剖析

第1章(2)通用的套接字网络编程接口 套接字网络编程接口的产生与发展过程 套接字与操作系统的关系 套接字编程的基本概念 面向连接的套接字编程 无连接的套接字编程 套接字网络编程接口的产生与发展 套接字编程接口的起源与应用 因此,使用套接字的应用程序必须说明许多细节。仅仅提供open、read、write、close四个过程远远不够。为避免单个套接字函数参数过多,套接字编程接口定义了多个函数。 我们应当从多个层面来理解套接字这个概念的内涵。 从套接字所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议栈进行通信的接口,是应用程序与网络协议栈进行交互的接口。 使用确定的IP地址和传输层端口号 在生成套接字的描述符后,往往要将套接字与计算机上的特定的IP地址和传输层端口号相关联,这个过程称为绑定。 一个套接字要使用一个确定的三元组网络地址信息,才能使它在网络中唯一地被标识。 网络应用程序要在不同的计算机中运行,本机字节顺序是不同的,但是,网络字节顺序是一定的。 所以,应用程序在编程的时候,在把IP地址和端口号装入套接字的时候,应当把它们从本机字节顺序转换为网络字节顺序;相反,在本机输出时,应将它们从网络字节顺序转换为本机字节顺序。 进程的阻塞问题 阻塞是指一个进程执行了一个函数或者系统调用,该函数由于某种原因不能立即完成,因而不能返回调用它的进程,导致进程受控于这个函数而处于等待的状态,进程的这种状态称为阻塞。 一种解决方案 编制多进程并发执行的服务器程序。可以创建子进程。对于每一个客户端,用一个专门的进程为它服务,通过进程的并发执行,来实现对多个客户的并发服务。 总结:Server端BSD API函数 socket 建立socket bind 绑定socket所使用的IP地址及端口号 listen socket等候(listen)Client端连接请求 accept 接受自Client端的连接请求并建立socket连接 recv 接收来自Client端所传送的数据 (TCP) read 接收来自Client端所传送的数据 (TCP) Server端BSD API函数 (cont.) recvfrom 接收来自Client端所传送的数据 (UDP) send 传送数据至Client端 (TCP) write 传送数据至Client端 (TCP) sendto 传送数据至Client端 (UDP) closesocket 关闭通信连接及socket,並且释放系统资源 Client端BSD API函数 socket 建立socket connect 建立与Server端socket的连接 recv 接收Server端所传送的数据 (TCP) read 接收Server端所传送的数据 (TCP) recvfrom 接收Server端所传送的数据 (UDP) Client端BSD API函数 (cont.) send 传送数据至Server端 (TCP) write 传送数据至Server端 (TCP) sendto 传送数据至Server端 (UDP) closesocket 关闭通信连接及socket,並且释放系统资源 Java网络编程API 用Java开发网络软件非常方便和强大,Java的这种力量来源于他独有的一套强大的用于网络的 API,这些API是一系列的类和接口,均位于包java.net和javax.net中。 java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包。 (1) stream socket (in Java) 包括下面两个类: Socket和 ServerSocket 。 Socket对象代表了客户程序流套接字, ServerSocket代表了服务程序流套接字, 这两个类均位于包java.net中。 (2) datagram socket (in Java) 包括下面两个类:DatagramPacket, DatagramSocket。 DatagramPacket对象描述了数据报信息, DatagramSocket表示客户程序和服务程序数据报套接字, 这两个类均位于java.net包内。 (3) InetAddress类 (in Java) InetAddress类在网络API套接字编程中扮演了一个重要角色。参数传递给流套接字类和数据报套接字类构造器或非构造器方法。 2.客户/服务器模式 C/

文档评论(0)

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

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

1亿VIP精品文档

相关文档