- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux套接字编程 套接字是一种进程间通信的方法,不同于以往介绍的进程间通信方法的是,它并不局限于同一台计算机的资源,除了可以在本地运行,还可以在网络中运行。 套接字接口(socket interface)由伯克利版本UNIX引入,可以认为是对管道概念的扩展——一台机器上的进程可以使用套接字与另一台机器上的进程通信。因此客户与服务器可以分散到网络中。 同一台机器的进程间也可以用套接字通信。 套接字概念 微软的windows系统也通过可公开获取的windows socket技术规范实现了套接字接口,因此windows程序可以通过网络和Linux/UNIX计算机进行通信,实现客户/服务器系统,反之亦然。 创建套接字 #include sys/types.h #includesys/socket.h 返回套接字描述符 int socket( int domain, int type, int protocol); domain:域 type:指定套接字的通信类型 protocol:指定使用的协议 域(Domain) 指定套接字通信中使用的网络介质,包括地址格式。最常用的有以下两种: AF_INET,即互联网络,基于IP协议,并且每个服务对应一个端口号,套接字地址由IP地址+端口号决定; AF_UNIX,基于本地机器,底层协议使用文件输入/输出,地址为绝对路径的文件名。 类型(Type) 流套接字:由类型SOCK_STREAM指定,基于TCP/IP实现,提供一个有序、可靠、双向字节流的连接,发送的数据不会丢失、乱序、重复。大的消息会被分块、传输、重组,很像一个文件流。 数据报套接字:由SOCK_DGRAM指定,基于UDP/IP协议,不建立和维持可靠连接,开销小。 协议(protocol) 我们重点讨论UNIX网络套接字和文件系统套接字,不需要选择特定协议,只要默认值(0)即可。 命名套接字 #include sys/socket.h int bind( int socket, const struct sockaddr* address, size_t address_len); 其中,socket是套接字的标示符。address是套接字地址。address_len是地址长度。 套接字地址 AF_UNIX:地址格式由sockaddr_un来描述 struct sockaddr_un{ sa_family_t sun_family char sun_path[]; } AF_INET:地址格式由sockaddr_in来指定 struct sockaddr_in{ short int sin_family; unsigned short intsin_port; structin_addrsin_addr; } 四字节IP地址 创建套接字队列 #include sys/socket.h Int listen( int socket, int backlog); 套接字队列中,等待处理的进入连接的个数最多不能超过backlog这个数字,多出的连接请求将被拒绝,导致客户连接失败。 当服务器正忙于处理一个客户请求时,后续的客户连接放入队列等待处理。函数执行成功返回0,失败返回-1. 接受连接 #include sys/socket.h int accept( int socket, struct sockaddr* address, size_t* address_len); 连接客户的地址将被放入address参数指向的sockaddr结构中。 address_len指定客户结构的长度,如果客户地址的长度超出这个值将被截断,所以必须先得到这个合适的值。 请求连接 #includesys/socket.h int connect( int socket, struct sockaddr* address, size_t address_len); 参数socket指定的套接字将连接到参数address指定的服务器套接字,address指向的结构长度由参数address_len指定。 关闭套接字 可以通过close函数终止服务器和客户上的套接字连接,操作过程与对文件描述符进行关闭一样。 Server.c 头文件与变量声明 #includesys/types.h #includesys/socket.h #includestdio.h #includesys/un.h #includeunistd.h #incl
您可能关注的文档
- linuxapacheoraclephpphp-java-bridge简单编程实例.ppt
- LinuxShell编程与Qt程序设计.pptx
- linuxgdb与shell命令.ppt
- Linux上的XWindow系统介绍.ppt
- linux、oracle简单维护.ppt
- Linux下如何检查内存泄露.ppt
- Linux下的C编程[xiwang].ppt
- LINUX下的C语言编程.ppt
- Linux下的DNS配置.ppt
- linux下的常用命令与文本编辑器vi.pptx
- 讲稿:深入理解“五个注重”把握进一步深化改革统筹部署以钉钉子精神抓好落实.pdf
- 副市长在2025年全市医疗工作会议上的讲话.docx
- 2025年市县处级以上党委(党组)理论学习中心组专题学习计划.docx
- 市民族宗教事务局党组书记、局长2024年度民主生活会个人对照检视发言材料.docx
- 烟草局党组书记2024年度抓基层党建工作述职报告.docx
- (汇编)学习2025年全国教育工作会议精神心得体会发言心得感悟.pdf
- 汇编学习领会在二十届中纪委四次全会上的重要讲话精神心得体会.pdf
- 在2025年镇安全生产、消防安全和生态环境保护第一次全体会议上的讲话提纲.docx
- 书记干部座谈会上的讲话+纪委全会上的讲话.pdf
- 党课:从毛泽东诗词中感悟共产党人初心使命.docx
最近下载
- 心衰完整课件.pptx VIP
- 2025年广东省基层住院医师线上岗位培训《中医康复学》-中医学专业培训课程专业课答案.docx VIP
- 设计软件操作技能测试考核试卷.docx
- Hillstone防火墙5.5R2版本操作手册.doc
- 2025年广东省基层住院医师线上岗位培训《卫生法律法规》-中医学专业培训课程公共课答案.docx VIP
- 2024年中国L-缬氨酸行业调查报告.docx
- 自动识别技术及应用(高职)全套教学课件.pptx
- 高中数学第二章数列2.2等差数列说课全国公开课一等奖百校联赛微课赛课特等奖PPT课件.pptx VIP
- 2025年广东省基层住院医师线上岗位培训《中医养生保健学》-中医学专业培训课程专业课答案.docx VIP
- 精神科护理说课.pptx
文档评论(0)