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
原创粉丝点击