Uni套接字分析和总结.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unix套接字 一 什么是套接字 套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发既可以在本地单机上 进行,也可以跨网络进行。 二 套接字属性 套接字的特性由3个属性确定,它们是:域,类型和协议 1 套接字的域 域指定套接字通信中的网络介质,最常见的套接字域是AF_INET,它指的是Internet网 络,其底层的协议——网际(IP)只有一个地址族,它使用一种特定的方式来指定网络中的计 算机,即人们常说的IP地址。 AF_UNIX域是 UNIX文件系统域,即使是一台还没联网的计算机上的套接字也可以使用 这个域,这个域的底层协议是文件输入/输出,而它的地址就是文件名。 2 套接字类型 因特网协议提供了两种通信机制:流和数据报。 2.1 流套接字 流套接字提供的是一个有序,可靠,双向字节流的连接,因此,发送的数据可以确保不 会丢失,复制或乱序到达,并且在这一过程中发生的错误也不会显示出来。大的消息将被分 片,传输,再重组。 流套接字由类型SOCK_STREAM指定,它们是在AF_INET 域中通过TCP/IP (TCP代表是 传输控制协议,IP代表是网际协议)连接实现的。 2.2 数据报套接字 数据报套接字由类型SOCK_DGRAM指定,不建立和维持一个连接。它对可以发送的数 据报的长度有限制。数据报作为一个单独的网络消息被传输,它可能会丢失,复制或乱序到 达。 数据报套接字是在AF_INET 域中通过 UDP/IP连接实现的,它提供的是一种无序的不可 靠服务(UDP 代表的是用户数据报协议)。 数据报适用于信息服务中的“单次”查询,它主要用来提供日常状态信息或执行低优先级 的日志记录。基于数据报的服务器通常不保留连接信息。 三 套接字的连接过程 1 创建套接字 #include sys/types.h #include sys/socket.h int socket(int domain, //指定协议族 int type, //指定这个套接字的通信类型 int protocol //指定使用的协议,将该参数设置为0 表示默认协议 ); 以下是协议族: AF_UNI :UNI 域协议(文件系统本地套接字) AF_INET:ARPA 因特网协议(UNI 网络套接字) AF_ISO :ISO 标准协议 AF_NS:施乐网络系统协议 AF_IP :Novell IP 协议 AF_APPLETALK:Appletalk DDS socket 系统调用返回一个描述符,当这个套接字连接到另一端的套接字后,我们就可以 用read 和write 系统调用,通过这个描述符来在套接字上发送和接收数据了。 2 套接字地址 每个套接字域都有其自己的地址格式,对于 AF_UNI 域套接字来说,它的地址有结构 sockaddr_un 来描述,该结构定义在头文件sys/un.h 中 #include sys/un.h struct sockaddr_un{ sa_family_t sun_family;//AF_UNI char sun_path[];//pathname,长度限制为108 个字符 }; 对于 AF_INET 域,套接字地址由结构 sockaddr_in 来指定,该结构定义在头文件 netinet/in.h 中, 一个AF_INET 套接字由它的域,端口号和IP 地址来完全确定。 #include netinet/in.h struct sockaddr_in{ short int sin_family; //AF_INET; unsigned short int sin_port; //端口号 struct in_addr sin_addr; //IP 地址 };

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

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

认证主体 阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档