socket套接字接口编程-网络编程

1、socket编程
1.1 流套接字

1.2 报文套接字
1.3 原始套接字
1.4 三种套接字区别

常用场景:

2、异步socket如果在一个.c文件实现同步通信呢?
实现:

3、select和accept有什么区别?
select: 监听最大描述符,读写描述符集,异常描述符,超时时间
accept: 监听套接字,接收连接地址,接收结构长度

补充:
FD_ZERO: 清空
FD_SET:加入(读数据套接字)
FD_ISSET:检查s是否在这个集合
FD_CRL:将s从set清除
4、select、poll和epoll函数的区别?

5、IO:对数据的访问和读取,网卡,寄存器,内存
第一类:阻塞IO:一次请求,一次数据返回
用户 ----------------------------------------------------内核
线程 —发起数据请求----阻塞/等待----》数据准备(IO操作)
结束阻塞–《------数据拷贝-----准备好-------

第二类:非阻塞IO:多次请求,一次数据返回
用户---------------------------------------------------------------内核
线程—发起数据请求(一次)----------不等待------》数据准备(IO操作)
《------返回error------------没有-----
—发起数据请求(二次)----------不等待------》
《------返回error------------没有----
—发起数据请求(三次)----------不等待------》
《------数据拷贝-----准备好-----

第三类:多路复用IO
用户--------------------------------------------------------------------内核
线程-----------select/poll/epoll–监视所有socket--------》系统调用
《-----------数据拷贝------------准备好-------

第四类:异步IO
用户--------------------------------------------------------内核
线程–aio-read--------------------------------------》系统调用
《-------------不阻塞,立即返回---------------数据准备
执行下面操作《--------数据拷贝-----------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值