- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 地址
};
您可能关注的文档
最近下载
- 小学二年级数学一单元检测卷.doc VIP
- 2025中国农业银行秋招发布时间笔试备考题库及答案解析.docx VIP
- 三级医院评审医技组药事检查手册.ppt VIP
- 2024年昆仑物流有限公司秋季高校毕业生招聘45人笔试参考题库附带答案详解.pdf
- yc-ii22 路十路口说明书.doc VIP
- 北京恒安卫士协议书.docx VIP
- T_CPSS 1003-2023 直流散热风扇通用性能测试规范 .docx VIP
- 10.2 我们与法律同行 课件(共22张PPT)2025年统编版道德与法治七年级下册.pptx VIP
- 护理查房制度理论知识考核试题及答案.docx VIP
- 房屋市政工程安全生产标准化指导图册(2025版).pptx
原创力文档


文档评论(0)