TCP编程模型select

一.select的引入

多进程的问题:数据共享,进程的上下文环境(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.select通过异步方式来工作,异步通过信号来触发。

3.应用select

4.poll

int poll(

struct pollfd*fds,//监控的描述符号

int nfds;//监控的描述符号的个数

int timeout);//阻塞超时

三.socket选项设置

1.soket通用选项:

SOL_SOCKET-SO_BROADCAST 广播

SO_RCVBUF 描述符号的缓冲的大小

SO_SNDBUF 描述符号的缓冲的大小

SO_REUSEADDR 地址反复绑定

SO_TYPE 描述符号类型SOCK

ICMP选项:

IPPROTO_ICMP

ICMP_FILTER

IP选项(控制生成的IP头)

IPPROTO_IP

UDP选项

IPPROTO_UDP

TCP选项

IPPROTO_TCP

setsockopt设置选项

getsockopt获取选项

三.OOB数据(TCP)

优先数据

send(,MSG_OOB)

recv(,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表示响应成功,3XX表示继续处理,4XX客户错误,5XX服务器错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值