Linux套接字.ppt

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

第9章 套接字 主要内容 Berkeley Socket 基础 系统调用 网络信息 因特网守护进程inetd/xinetd 多客户 数据报 Berkeley Socket TCP/IP in UNIX BSD4.1 socket connection: 协议、本地地址、本地端口、远程地址、远程端口 socket: 协议、本地地址、本地端口 要解决的问题 支持多种协议族(AF_UNIX,AF_INET等) 面向连接的服务和无连接的服务 地址的表示(数据结构) 主机字节顺序和网络字节顺序 Berkeley Socket 常用函数列表 网络连接函数 获取/设置socket的参数或信息 转换函数 网络连接函数 socket bind connect listen accept select recv, recvfrom send, sendto close, shutdown 获取/设置socket的参数或信息 gethostbyaddr, gethostbyname gethostname getpeername getprotobyname, getprotobynumber getservbyname, getservbyport getsockname getsockopt, setsockopt 转换函数 IP地址转换 inet_addr() 数-点表示转换成整数值 inet_ntoa() 整数值转换为数-点表示字符串 字节顺序转换 htons()--Host to Network Short htonl()--Host to Network Long ntohs()--Network to Host Short ntohl()--Network to Host Long 网络字节序VS主机字节序 不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种: 1. little endian(小端字节序):将低序字节存储在起始地址。 2. big endian(大端字节序):将高序字节存储在起始地址。 x86系列CPU都是little-endian的字节序。 网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。 Socket 属性 套接字的域 套接字类型 套接字协议 socket 系统调用 #include sys/types.h #include sys/socket.h int socket(int domain, int type, int protocol); 创建一个套接字并返回一个描述符,创建的套接字是一条通信线路的一个端点。 socket 系统调用(续) “domain” parameter Specifies a communication domain, that is, selects a protocol family, such asAF_UNIX, AF_INET, AF_IPX ... “type” parameter Specifies the communication semantics. Two main types are: SOCK_STREAM, SOCK_DGRAM “protocol” parameter usually 0 (default). Two Types of Sockets 流套接字(SOCK_STREAM) 可靠的、面向连接的通信。 使用TCP协议 数据报套接字(SOCK_DGRAM) 无连接服务 使用UDP协议 数据结构:sockaddr struct sockaddr { /* address family,AF_xxx */ unsigned short sa_family; /* 14 bytes of protocol address */ char sa_data[ 14];}; 此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息 数据结构:sockaddr_un struct sockaddr_un { short int sin_family; /* AF_UNIX */ char sun_path[ ]; /* pathname */ }; 一个AF_UNIX套接字由它的域、sun_path成员中的文件名指定。 数据结构:sockaddr_in struct sockaddr_in { short int sin_family; /* AF_INET */

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档