加载中
Playing with QUIC

选择一个QUIC代码源 下面的说明是用来基于chromium代码库编译QUIC代码。在Chrome支持的任何平台上,这里的说明都能保证是有效的,遇到问题时可以查看一些扩展的故障排查的文档。如果你不想c...

2016/10/10 19:36
384
android下使用libcurl和c-ares

为android NDK编译配置c-ares: 1. 设置环境变量NDK: export NDK=/media/data/dev_tools/android-ndk-r9d 2. 工具链 $NDK/build/tools/make-standalone-toolchain.sh \ --platform=android...

2016/09/29 17:36
443
Netty HTTP on Android

Netty是一个NIO的客户端服务器框架,它使我们可以快速而简单地开发网络应用程序,比如协议服务器和客户端。它大大简化了网络编程,比如TCP和UDP socket服务器。 “快速而简单”并不意味着开发...

2016/08/10 13:47
693
chromium net库设计

总览 网络栈主要地是一个单线程跨平台的库,主要负责资源获取。它的主要接口是URLRequest和URLRequestContext。URLRequest, 正如它的名字所表明的那样,表示一个URL的请求。URLRequestConte...

2016/08/10 13:45
284
GN的使用 - GN工具

GN的使用 - GN工具 GN工具可以帮助我们对我们的编译配置的有效性进行检查,及整个系统有更多得了解。特别是当整个项目变得特别巨大时,这意义尤其重大。 gn args 这个工具有两个作用,一是生...

2016/08/03 17:49
2.6K
标准STUN判断NAT类型的过程及改进

这里基于stund的实现,来研究标准STUN协议,判断NatType的过程。 stund用于判断NatType的接口的用法 首先来看stund中用于判断NatType的接口的用法。这里主要来看stund中的STUN客户端client....

2016/04/06 19:33
738
常见网络服务器开发开源项目代码规模

这里总结了一些常见的网络服务器开发中用到的C/C++开发的开源项目核心代码的代码规模,主要是为了后续研读这些优秀的开源项目的代码,学习他们的设计而提供一些参考。 libev 项目主页:http:...

2016/03/29 22:21
341
字库创建小记

让我们创建一个字库,它使我们可以键入一个字母,该字母可以用SVG path "M 20 -20 L 20 680 700 680 700 -20 20 -20 M 170 130 L 550 130 550 530 170 530"来定义,这是用简洁的方式来说"它看...

2015/12/26 11:27
199
Poco库异步执行框架设计与实现分析

Poco是一个强大的,用于构建C++程序的类库,它提供了许多非常好用的部件来帮助我们更快的开发C++应用程序,异步执行的相关部件正是这些好用的部件中的一部分。这里我们来看一下Poco库的异步执...

2015/12/10 19:40
567
UDT协议实现分析——close过程

最后再来看一下close的过程(src/api.cpp): int CUDTUnited::close(const UDTSOCKET u) { CUDTSocket* s = locate(u); if (NULL == s) throw CUDTException(5, 4, 0); ...

2015/10/02 14:27
349
UDT协议实现分析总结

UDT的整体结构 UDT Socket是UDT中的核心,同时它也是一座桥梁,它将UDT的使用者应用程序与内部实现部分对于数据结构的管理、网络数据的传输连接起来。 应用程序通过它将数据放进发送缓冲待发...

2015/09/28 19:15
890
UDT协议实现分析——发送窗口大小及发送速率的调整

UDT主要通过在数据收发的过程中进行精细的控制来实现对于网络带宽更加有效的利用,并使网络中数据传输的速率尽可能快。 如我们前面在分析数据发送的控制中看到的,对于正常的顺序packet发送,...

2015/09/24 22:50
1K
UDT协议实现分析——UDT数据收发的可靠性保障

不管是数据的发送还是数据的接收,大体的流程我们基本上是都理了一下,还分析了数据收发过程中用的数据结构,接下来就看一些UDT中数据收发更精细的一些控制。 UDT数据收发的可靠性保障 来看一...

2015/09/23 20:27
978
UDT协议实现分析——数据的接收

看了UDT中数据发送的部分之后,我们转换一个角度,来看一下接收端发生的故事。 如我们前面在 UDT协议实现分析——连接的建立 一文中看到的那样,CUDT在connect()的后半场,会通过调用CRcvQue...

2015/09/21 20:40
1K
UDT协议实现分析——数据发送控制

在前文中,我们有看到,数据发送的过程,大体是发送者CUDT将要发送的数据放进它的CSndBuffer m_pSndBuffer,并将它自己添加进它的CSndQueue m_pSndQueue的CSndUList m_pSndUList的堆里,后面...

2015/09/18 19:34
1K
UDT协议实现分析——数据的发送

连接建立起来之后,我们就可以通过UDT Socket进行数据的收发了。先来看用来发送数据的几个函数。UDT提供了如下的几个函数用于不同目的下的数据发送: UDT_API int send(UDTSOCKET u, const ...

2015/09/14 18:42
1K
UDT协议实现分析——连接的建立

UDT Server在执行UDT::listen()之后,就可以接受其它节点的连接请求了。这里我们研究一下UDT连接建立的过程。 连接的发起 来看连接的发起方。如前面我们看到的那样,UDT Client创建一个Socke...

2015/09/12 12:02
1K
UDT协议实现分析——bind、listen与accept

UDT Server启动之后,基于UDT协议的UDP数据可靠传输才成为可能,因而接下来分析与UDT Server有关的几个主要API的实现,来了解下UDT Server是如何listening在特定UDP端口上的。主要有UDT::bi...

2015/09/09 18:24
1K
Linux下电骡aMule Kademlia网络构建分析5 —— 资源的发布

资源发布请求消息的发送 在aMule中,主要用CSharedFileList class来管理共享给其它节点的文件。如我们前面在 Linux下电骡aMule Kademlia网络构建分析3 一文中分析的那样,aMule在启动的时候,...

2015/08/10 20:44
234
Linux下电骡aMule Kademlia网络构建分析4

aMule中联系人的管理 aMule中主要通过CContact,CRoutingBin和CRoutingZone这样几个类来管理它的联系人。 CContact表示一个联系人,它包含了与一个联系人有关的所有的信息,这个类的对象可能...

2015/08/06 20:32
161

没有更多内容

加载失败,请刷新页面

返回顶部
顶部