自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Linux高级开发的博客

关于C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术分享。

  • 博客(6)
  • 收藏
  • 关注

原创 去中心化的网络设计 — P2P的实现

随着区块链的越来越火,去中心化的网络设计再次被拿到技术人员面前。在这里我使用非常通俗的语言,帮大家来理解去中心化的网络设计的基础—网络穿透。再使用代码来实现穿透。如果阐述不到位的地方,欢迎大家抛砖。     在有中心化服务器的网络中,客户端,服务器,网关构成网络拓扑图。如下图1所示:由于后续出现的名词概念很多,先约法三章,在这里统一一下称呼:所有的终端机器成为客户端,不同客户端使用大写字母区分(A...

2018-05-31 11:02:10 5140 2

原创 自己动手实现Epoll

Epoll是Linux IO多路复用的管理机制。作为现在Linux平台高性能网络IO必要的组件。内核的实现可以参照:fs/eventpoll.c .为什么需要自己实现epoll呢?现在自己打算做一个用户态的协议栈。采用单线程的模式。https://github.com/wangbojing/NtyTcp,至于为什么要实现用户态协议栈?可以自行百度C10M的问题。由于协议栈做到了用户态故需要自己实现...

2018-05-30 09:11:50 817

原创 EasyDarwin实现说明之添加模块

在Darwin的架构中一个很重要的概念就是模块(Module),我们在原生Darwin系统上加入了两个模块(Module),是MyBCInteractModule和MyFileUploadModule,每个模块都要提供两个函数,Main和dispatch函数,服务器启动时(QTSServer)会调用Main函数完成对该模块的初始化;Dispatch是注册给服务器的一个回调函数,服务器通过该函数分发...

2018-05-29 11:13:27 780

原创 多此一举, C实现 try-catch

在做NtyTcp的时候,有一些,就想用c来实现一套try-catch异常处理子系统。不讨论C语言本身为什么不加try-catch,每个开发的朋友对于这个问题,都能说出一大堆的理由。其实我也是不太喜欢强行在c中加入一个try-catch。就像把try-catch的原理跟自己的体会写出来。首先我们来看看,try-catch的使用情景。1234567try {    throw Excep;} catc...

2018-05-28 09:16:06 913

原创 RTSP推流方案调优

本项目是一个互联网音频广播得项目,其中APP推音频流到EasyDarwin服务器,云喇叭(音响,使用wifi联网)从EasyDarwin上拉流解码播放,但是在公司里测试时,老是出现播放卡顿的问题(公司网络不太稳定),前后大约耗时3个星期才从根本原因上解决问题。定位解决的过程大致如下:一、一开始从源码去分析的,因为MP3一帧播放的时长大约是26.12毫秒,但是IOS得APP在填写RTP包的时间戳...

2018-05-26 10:53:16 3193

原创 云服务器 IPV6的配置

相信大部分的做IOS开发的朋友,在App发布的时候都是需要将服务器做到支持IPV6的。我今天就在做NtyTcp DNS异步解析的时候,需要一个测试环境,所以搭建了一个IPV6的环境。把过程列举出来。一。主机内核需要支持IPv6修改 /etc/sysctl.confnet.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6...

2018-05-25 15:05:55 1740

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除