摘要:场景 当我们需要在不重启服务的情况下断开某一个TCP长连接时,tcpkill工具就非常有用。比如我们要测试某个长连接断开后程序自动重连的情况。 tcpkill安装 这个连接的作者改了一下tcpkill,使得更好用。 https://yq.aliyun.com/articles/59308 使用 就这
阅读全文
摘要:文章标题可能表述不清,罢了,我这里描述一个场景: 当使用exosip开发UA时,服务器地址是域名example.com和端口形式,但存在两个限制: 1、example.com没有DNS记录、没有NAPTR记录,或者example.com的A记录地址不是真实的服务器地址,此时我们得自定义该地址; 2、
阅读全文
摘要:最近测试广州电信的电话会议平台,该平台接入采用HTTPS协议,于是有了本文。09年培训时写过一个简单的TLS C/S结构交互,采用openssl的ssl相关接口,但与生产相去胜远。本文采用openssl提供的BIO。 长链接还是短链接? 测试过程中发现长连接在一段时间内没有数据交互会被服务方释放,无
阅读全文
摘要:最近交互数据中用到JSON数据,很多年以前用过CJSON解析和生成JSON数据,貌似CJSON已经发展成为了libjson,本打算用libjson库,不过其提供的解析JSON方式采用了回调,是测试过程中总是出错,无赖放弃。parson(http://www.oschina.net/p/parson)
阅读全文
摘要:产品通过HTTP协议为外部提供接口服务,常规情况是客户通过HTTP协议请求服务,服务结束后通过HTTP协议将服务记录POST到请求方。 用原生C实现了一个简单的HTTP Client,只有简单的功能: 1、实现HTTP GET/POST/PUT等方法; 2、POST支持参数和数据POST; 3、PO
阅读全文
摘要:本文已经是很久以前的文章了,也不知道新版本thrift如何 Thrift是一个跨语言的服务部署框架,Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang
阅读全文
摘要:参考资料:http://www.ibm.com/developerworks/cn/java/j lo apachethrift/ 首先是定义thrift IDL接口,如下(SunTelTc.thrift): 生成对应代码 以c++为例,响应文件如下 以C++为例,修改服务器端代码(可选),修改Tc
阅读全文
摘要:项目中需要用到redis就封装了一下,基于hiredis,只封装了string和哈希的部分方法。编译时加入 D__USER_LOCK__添加线程安全。 suntelRedisCli.h suntelRedisCli.cpp include include include "suntelRedisCl
阅读全文
摘要:参考源代码目录src/tests/rtpsend.c 代码解读: 1、如果不手动调用rtp_session_set_local_addr设置本地RTP IP/PORT和RTCP PORT,ortp会自动选择可用端口; 2、rtp_session_set_connected_mode设置连接模式,如果
阅读全文
摘要:include "bfc_epoll_flow.h" CEPollFlow::CEPollFlow() { m_iEpollFD = 1; m_pEpollEvents = NULL; } CEPollFlow::~CEPollFlow() { if(m_pEpollEvents) { delete
阅读全文
摘要:官方介绍libnsq是nsq的c库,尼玛还真是c库,如果用g++编译还真编译不过。这篇文章就是说一下怎么在c++中使用libnsq。 为什么用g++编译不过libnsq呢,因为其头文件中默认全是c函数,没有对c++编译器做处理。 为了保持libnsq的完整性,不对libnsq代码作任何修改。 lib
阅读全文
摘要:``` include / AES_CBC_PKCS5_Encrypt 入参: src:明文 srcLen:明文长度 key:密钥 长度只能是16/24/32字节 否则OPENSSL会对key进行截取或PKCS0填充 keyLen:密钥长度 outLen:密文长度 返回值: 密文 需要free /
阅读全文