- 博客(6)
- 收藏
- 关注
原创 linux下 pulseaudio录音和播放
2.列出所有的音频输入源,其中包括麦克风 Name 即是pa_simple_new函数dev参数。1.安装pulseaudio。1.发送方 测试代码。2.接收方 测试代码。
2023-11-21 18:10:30
1904
1
原创 网络缓冲区的设计
WSASend/WASrecv(异步io) :先注册读写事件(每次都需要调用一次函数),准备一个用户缓冲区,向内核发送一个请求,有数据的时候内核把数据拷贝到用户缓冲区,内核发送一个通知(事件),用户可以从用户缓冲区取出数据。c.中断处理函数将屏蔽中断,发起软中断(避免cpu频繁被网卡中断,使用软中断处理耗时操作,避免执行时间过长,导致cpu没法响应其他硬件中断)f.触发网卡发送,发送成功,触发硬中断,释放sk_buff和ringbuffer内存(tcp对应的是克隆而来的,udp对应的是原始的)
2023-11-07 18:19:50
112
原创 c++线程池实现
b.io密集型(网络io 以及 磁盘 io, 用户态到内核态的切换 ) 2*cpu核心数 +2。a.线程数量继续增加,由于系统资源的限制,不在带来性能的提升,反而带来负担。3.固定多少数量的线程?从任务的类型出发 + cpu核心数。a.cpu密集型(用户态执行) cpu核心数。某类任务特别耗时,严重影响该线程处理其他任务。维持和管理固定数量线程的池式结构。1.为什么要固定线程数量?b.避免频繁的创建和销毁。队列(先进先出+锁)4.为什么用线程池?
2023-11-03 11:19:52
111
原创 socket网络编程
需要注意的是,如果服务器频繁出现大量处于TIME_WAIT状态的TCP连接,可能会导致资源浪费。b.避免旧连接干扰:如果新建立的连接使用了相同的源IP地址和端口号,而旧连接还处于网络中,在TIME_WAIT期间会阻止重复的连接请求。如果客户端大量断网(心跳检测期间都没连接上),是不是需要服务器主动断开连接,进行四次挥手,会不会有大量time_wait?c.处理网络延迟和重传:在TIME_WAIT状态期间,可以处理来自对方发送的延迟到达或重传的数据包,以避免数据丢失。出现大量time_wait的原因?
2023-11-01 10:08:45
89
1
原创 io多路复用select、poll、epoll模型
2.epoll水平触发LT(默认触发方式): io缓冲区有数据或有空间写就会一直触发, 不断的通过epoll_wait()返回。参数四:表示在没有检测到事件发生时最多等待的时间,超时时间(>=0),单位是毫秒ms,-1表示阻塞,0表示不阻塞。将需要检测的fd_set集合拷贝内核,如果有io就绪重新设置需要检测的fd_set集合,在拷贝到用户层。参数二:接口的返回参数,epoll把发生的事件的集合从内核复制到 events数组中。就会触发,读:来数据就触发一次,写:写缓冲区从满到有空间才会触发一次。
2023-11-01 10:08:24
72
1
空空如也
c/c++ 获取linux 的 系统声音
2023-11-18
如何实现录取linux内部的声音
2023-11-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人