




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UNIX网络编程,UNIX网络编程,主要内容 1.基本TCP套接字编程 2.I/O模型 3.UNIX 下高级I/O函数 4.IOCTL操作 5.客户/服务器程序设计范式,TCP/UDP 协议,TCP,1.TCP连接建立和终止(三次握手) 2.TCP状态转换图 3.TIME_WAIT状态,TCP连接建立,TCP连接终止,TCP状态转换,TCP为一个连接 定义了11种状态,TCP状态转换,一个完整的TCP连接 所发生的实际分组交换 情况:建立连接、 传送数据和终止连接,缓冲区大小以及限制,IPV4数据报的最大大小是65535字节,IPV6最大大小为65575 以太网最大传输单元(MTU)为1500
2、字节 IP数据报发出时,大小超过对应链路的MTU,IPV4和IPV6都将执行分片,到目的地被重组 TCP最大分节大小(MSS),用于向对端TCP通告对端在每个分节中能发送的最大TCP数据量,TCP输出,UDP输出,基本套接字编程,套接字地址结构,基本套接字编程,SocketAPI最初是在BSD UNIX 中开发的,用来为TCP/IP协议簇提供应用程序级接口,后来被移植到大多数系统,现在是“事实上”TCP/IP上编写进程间通信的标准,基本套接字编程,通用套接字地址结构,基本套接字编程,主机字节序 网络字节序(高字节序存储) 字节序转换函数,TCP套接字编程,TCP客户端服务器的套接字函数,TCP
3、套接字编程,Socket函数 int socket(int family,int type,int protocol)返回非负成功,TCP套接字编程,Connect函数 int connect( SOCKET s, const struct sockaddr FAR* name, int namelen ); 函数connect激发TCP上次握手过程 阻塞,TCP套接字编程,Bind函数 给套接字绑定一个本地协议地址(IP/端口) Int bind(int sockfd,const struct sockaddr * myaddr,socklen_t addrlen) 返回 0 成功 -1 失
4、败,TCP套接字编程,Int listen(int sockfd,int backlog) 函数socket创建的是主动套接字,listen将这个套接字设置为被动 函数第二个参数规定了内核为此套接字排队的最大连接个数 什么是backlog?,TCP套接字编程,Listen函数 监听套接字,内核要维护两个队列: 1.未完成连接队列 2.已完成连接队列,TCP套接字编程,BSD手册定义backlog为待处理连接可能增长的最大数目。但并未解释什么是待处理连接,是出于SYN_RCVD,还是ESTABLISHED状态,还是两者俱可。 Berkeley的实现加了一个模糊因子:把它1.5,TCP套接字编程,
5、MSDN的解释backlog Maximum length of the queue of pending connections. If set to SOMAXCONN, the underlying service provider responsible for socket s will set the backlog to a maximum reasonable value. There is no standard provision to obtain the actual backlog value.,TCP套接字编程,Accept函数 Int accept(int sockfd,struct sockaddr* cliadrr,socklen_t * addrlen) 从已完成连接队列取出一个已完成的连接,若队列为空则阻塞线程,TCP套接字编程,Close(),TCP套接字编程,一个典型的服务器程序,TCP套接字编程,一个并发服务器 UNIX下写一个并发服务器最简单的方法 就是为每个客户FORK一个子进程,I/O 模型,阻塞 非阻塞 I/O多路复用(select) 信号驱动 异步I/O,I/0模型,阻塞模型 系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政工程项目进度风险管理与保证措施
- 语言文字工作自查报告范文-企事业单位篇
- 机械臂本科生毕业设计论文范文
- 高校旅游商业计划书
- 专车司机劳动合同范本
- 下水漏水维修合同范本
- 二手房签订合同协议书
- 老小区房子售卖合同范本
- 蜂窝织炎护理常规
- 专家劳务总包合同范本
- 成本会计岗位竞聘稿
- 2024年新版消防设施操作员初级考试题库(含答案)
- 泡泡玛特营销案例分析
- 养老院安全生产培训
- 国开电大行政管理专科《政治学原理》期末考试总题库2024版
- 美容与整形外科学基础
- 加工机械安全培训内容记录
- 市政、园林取费定额
- 精准设计支架助力习作表达-统编小学语文教材习作单元教学例谈 论文
- 《战略性绩效管理》复习资料
- 大众进口途锐全车电路图01安装位置保险丝
评论
0/150
提交评论