SocketPair学习笔记

在看使用libevent的时候,它里面有一个创建socketpair对的函数

先分析一下什么是SocketPair.

首先搞明白,在我们平时单个客户端和服务端TCP通信的时候,需要三个socket才能做到能够全双工通信,什么?三个,是的没错!

一个客户端client ,一个服务端server,  一个accepter;  一开始client 连接server,server在接受client连接的时候,产生一个accepter,专门负责与client通信.  好了,我们SocketPair就到此完了,我们只需要把client ,accepter 保存起来,server关闭掉,就完成socketpair对创建.

client,accept是啥?其实就是两个数字,在同一机器上,有了这两个数字就可以在任何的进程,线程相互的收发消息,想想都很爽!因为在不同线程,进程收发消息是不需要加锁,随便弄!(消息粘包自己处理好就行),类似于QT里面信号槽机制,消息我发了,至于谁收,做什么处理,我不管,是不是很好的解耦合!

至于性能上,我做过音视频解码到播放使用这个方案处理线程通信都没问题.更多的就没测试了. 看图更清晰

最后附上封装的 Tcp库,也可以到gitee上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值