- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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
您可能关注的文档
- java语言程序设计.ppt
- java语言程序设计第6章第1章.ppt
- JAVA零基础讲义.ppt
- 1-1节 复数的概念与定义29.ppt
- Java面向对象程序设计4(吴卿).ppt
- java面向对象程序设计第六章.ppt
- ECDIS有关国际公约规范.ppt
- 高级编程java.ppt
- 生物膜系统.ppt
- JDK的配置和JCreator的简单使用.ppt
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
最近下载
- 2024年高考语文复习:修改病句 专项练习题(含答案解析).pdf VIP
- ISO_9001_2015(英文版,高清原文).pdf
- 2024年全国职业院校技能大赛高职组(烹饪赛项)备赛试题库(含答案).pdf VIP
- 2024年世界职业院校技能大赛中职组“导游服务组”赛项考试题库(含答案).pdf VIP
- 2024年世界职业院校技能大赛高职组“导游服务组”赛项参考试题库(含答案).pdf VIP
- 2024年世界职业院校技能大赛高职组“研学旅行组”赛项参考试题库(含答案).pdf VIP
- 涡喷发动机及其油路结构.pdf VIP
- (一模)临汾市2025年高考考前适应性训练考试(一) 化学试卷(含答案).pdf
- 山西省大同市云冈区重点名校2024届中考冲刺卷数学试题含解析.doc VIP
- 2024年《药物临床试验质量管理规范》(GCP)网络培训题库及答案完整版.pdf VIP
文档评论(0)