计算机网络编程 四讲 套接字API.ppt

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

分为短(short 16位)和长(long 32位)两种 htons:将一个短整数从本地字节顺序转换为网络字节顺序; ntohs:将一个短整数从网络字节顺序转换为本地字节顺序; htonl和ntohl: 类似如上 计算机网络编程 电子科大计算机学院 使用TCP的客户和服务器套接字函数调用序列 计算机网络编程 电子科大计算机学院 socket 客户端 connect send recv close socket 服务器端 bind listen accept close send recv UNIX系统提供了预定义的符号常量和数据结构来声明数据和指明参数: 使用何种服务: SOCK_DGRAM: 数据报服务,UDP协议 SOCK_STREAM: 流服务,TCP协议 PF_INET:使用TCP/IP协议族 AF_INET: 使用TCP/IP地址结构 需要include,引用出现这些定义的文本 #include sys/types.h #include sys/socket.h 计算机网络编程 电子科大计算机学院 套接字已经成为一种事实上的标准 socket函数使用PF_INET说明使用TCP/IP 其它的系统调用的使用方法 bind, listen, connect, accept, read, write, close 协议族的地址表示方式 AF_INET指明含有一个IP地址和端口号的端点地址 TCP/IP是用于定义的结构sockaddr_in 一些预定义的结构和常量需要include引用 计算机网络编程 电子科大计算机学院 1.什么是套接字? 2. PF_INET和AF_INET分别代表什么? 3.struct sockaddr和struct sockaddr_in有什么不同? 4.accept调用完成什么功能,返回什么? 5.系统调用Socket( int domain, int type, int protocol)中的type用来标识什么,可以有哪些值? 计算机网络编程 电子科大计算机学院 * * * 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 《计算机网络编程》 第四讲 套接字API 套接字的概念 Berkeley套接字 套接字概要 套接字主要系统调用 用于整数转换的函数调用 在程序中使用套接字调用 套接字调用参数相关的符号常量 计算机网络编程 电子科大计算机学院 计算机网络编程 电子科大计算机学院 1. 套接字是一个主机本地应用程序所创建的, 为操作系统所控制的接口 (“门”) . 2. 应用进程通过这个接口,使用传输层提供的服务, 跨网络发送(或接收)消息. 3.Client/server模式的通信接口——套接字接口. socket process TCP with buffers, variables socket 由应用程序 开发者控制 由操作系统控制 host or server process TCP with buffers, variables socket controlled by application developer controlled by operating system host or server internet 来自UNIX系统 Berkeley套接字 ARPA要求伯克利分校将TCP/IP移植到UNIX中 需要创建一个接口,便于应用程序使用这个接口 进行网络通信 尽可能使用现有的系统调用,同时添加新的系统调用支持TCP/IP。 这个系统被称为BSD UNIX (Berkeley Software Distribution),成为事实上的标准 1981提出于BSD4.1 UNIX,本书基于BSD4.4 版本 计算机网络编程 电子科大计算机学院 考虑:接口是专门针对TCP/IP协议, 还是可以为其它协议所用呢? 方法一:定义专门支持TCP/IP通信的一些函数 方法二:定义支持一般网络通信的函数,用参数使TCP/IP通信作为一种特例 Berkeley套接字使用第二种办法,具有通用性,TCP/IP是一个族PF_INET 另外,应用程序知名使用服务的类型,而不是指定协议名 争论: 通用性没有必要,使应用程序难以阅读 通用性可以使程序员免于了解协议族的细节 计算机网络编程 电子科大计算机学院 文件描述符:进程的文件描述符表的下标。OS中每个进程对应一个文件描述符表,表中每个元素指向和文件相对应的一个内部的数据结构。 套接字和文件类似,每个活动套接字使用一个小整数标识,进程的文件描述符和套接字描述符值不能相同 socket函数:创建套接字,返回描述符(不是open

文档评论(0)

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

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

1亿VIP精品文档

相关文档