linux(十)
来源:互联网 发布:如何下载autocad软件 编辑:程序博客网 时间:2024/06/04 17:57
回顾: 多进程的问题:数据共享。 多进程的问题:进程的上下文环境(context) 文件描述符号是整数以及对应上下文环境 多进程的问题:上下文环境共享一.SELECT TCP服务器编程模式 1.select函数 int select( int fds,//建议是监控的文件描述符号的最大值+1 fd_set *readfds,//读文件描述符号集合 //该参数既是输入,也是输出 //输入:被监控的描述符号 //输出:有数据的描述符号 fd_set *writefds, fd_set *errfds, struct timeval*timeout);//指定阻塞时间限制 //为NULL,永久 返回: >0:发生改变的文件描述符号个数 =0:时间限制过期 =-1:异常 2.IO能否发出信号? 异步IO就是通过信号工作. 3.应用使用select 4.使用select实现TCP的多客户连接与处理 5.poll模式 int poll( struct pollfd *fds,//监控的描述符号 int nfds,//监控的描述符号的个数 int timeout ); //阻塞超时二.Socket选项设置 1.socket有哪些选项可以设置 ARP | IP | |-----------------| UDP TCP 通用选项: SOL_SOCKET SO_BROADCAST 广播 SO_RCVBUF 描述符号的缓冲的大小 SO_SNDBUF 描述符号的缓冲的大小 SO_REUSEADDR 地址反复绑定 SO_TYPE 描述符号类型SOCK_STREAM SOCK_DGRAM? ICMP选项 IPPTOTO_ICMP ICMP_FILTER IP选项(干预系统生成IP头) IPPROTO_IP ...... ...... UDP选项 IPPROTO_UDP ...... TCP选项 IPPROTO_TCP ...... setsockopt设置选项 getsockopt获取选项案例: 判定一个socket的数据类型AF_INET:SOCK_STREAM SOCK_DGRAM SOCK_RAW案例: 使用选项进行数据广播. cast_A发送 建立socket 设置广播选项 发送数据(广播方式发送) case_B接收 建立socket 设置地址可重用选项 绑定地址 接收数据 三.OOB数据(TCP) 优先数据 send(,MSG_OOB); recv(,MSG_OOB);案例: oob_server.c recv MSG_OOB oob_client.c send MSG_OOB 1.OOB数据只能一个字符 2.普通数据使用一般方式接收与发送,OOB数据使用MSG_OOB接收与发送 3.一个数据使用MSG_OOB,则最后一个是OOB,其他非OOB数据 4.问题:OOB数据是优先数据。优先体现在什么地方?四.HTTP协议以及应用 1.HTTP协议版本HTTP1.0 HTTP1.1 2.HTTP是应用协议 3.HTTP协议分成: 请求协议 响应协议 4.请求协议的格式: 请求行(请求方法 请求资源 协议版本) 请求体(请求头:请求值) 空行 数据(querystring:key=value&key=value) 5.响应协议的格式 响应行(协议版本 响应码 响应码的文本描述) 响应体(响应头: 响应值) 空行 数据(普通数据/分块数据) 1XX 正在处理 2XX 响应成功200 3XX 继续处理 4XX 客户错误 5XX 服务器错误五.ioctl函数 实现ifconfig工具总结: 重点: select 广播 了解: OOB数据 HTTP协议 应用: 独立编写TCP服务器端的select模式 编写广播 能够请求一个网页,并且解析响应
0 0
- Linux 命令行 (十)
- linux(十)
- Linux Socket 学习(十)
- Linux Socket 学习(十)
- Linux学习笔记(十)
- Linux Socket 学习(十)
- Linux学习笔记(十)
- Linux Socket 学习(十)
- Linux操作命令(十)
- Linux每日学习(十)
- Linux学习日志(十)
- Linux学习日志(十)
- (十)Linux操作系统基础
- linux学习笔记(十)
- Linux命令大全(十)--
- Linux系统基础(十)
- LINUX学习笔记(十)
- linux(十)时间同步
- java安装好后第二天又报could not find the version jre
- 关于mini2440按键中断的配置
- C语言实现 前序、中序、后序遍历二叉树
- HDU 2112 HDU Today 【最短路径 dijkstra & floyed & SPFA 】
- linux date 快捷命令
- linux(十)
- 第四周第一天
- hdoj 1874 (畅通工程续) +dijkstra算法解析
- nyoj 71 独木舟上的旅行
- [Java Concurrency in Practice]二至五章小结
- 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
- Tank辞职信(仿陈情表)
- 基于第三方QQ授权登录
- 博弈之Nim游戏