简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
我之前编译了jrtplib 3.9.1,并且在项目中使用,结果发现在用这个库时,程序体积有增加了300多K,感觉实在是有点笨重,我无法就是用来发送rtp包而已。想想还是自己重新实现一个简单的类用用拉倒了,所以有了下面的代码。头文件:/*!@brief 简单rtp库@file easy_rtp.h*/#ifndef _EASY_RTP_H#define _EASY_RTP_H#
在linux中,一旦fork出子进程后,子进程就会继承主进程的描述符,这为开发者带来了不少问题,比如当我使用socket的时候,一旦我绑定了某个端口,而后fork,如果此时fork出的子进程不退出的,那么我主进程重启后,就会出现无法绑定端口的问题。当然解决这种问题你可以选择在socket初始化时,加入SOCK_CLOEXEC这个选项,使得子进程不继承。那下面就介绍一种通用方法(如有问题,欢迎指出)
我们在编写php项目的时候会遇到本地调试运行正确,但部署到服务器运行就出现问题的情况,此时可能不容易定位错误原因,因此使用zend进行远程调试是一种很好的解决方法。废话不多说了,看下面的步骤。本次介绍以开发环境为windows而运行环境为linux举例1.下载安装zend studio,可以去官网下载2.下载Studio Web Debugger(zend debugger),我用的是
下载解压boost,我现在用的是1.48,安装交叉编译器至指定位置,设置编译器路径到 PATH1.首先运行boost解压目录下的./bootstrap.sh 2.修改生成的project-config.jam文件修改:using gcc : arm : arm-none-linux-gnueabi-gcc ; 修改(这边不改也没事):option.s
通常我们在程序开发时会加入版本查询命令,如:“-v”,此时一般会显示build版本,以及build日期等,因此如果每次编译时能自动添加这些信息的话,就非常方便了。下面先说说添加时间的方法:1.最简单方式,代码中直接加入宏__TIME__和__DATE__通过他们可以直接得到编译时间,然后可以在代码里打印2.有点绕不实用,在Makefile中定义一个变量CT="\"`date
在实际的应用中,会碰到需要遍历容器中的元素,并且在判断某些的条件后,将某个元素从容器中清除的场景:#include#include#include#include#include#includetemplatevoid del(T t, int pos){// 测试循环遍历中的删除操作int i = 0;for (typename T::iter
使用vc2010,对vector,set,map,list,deque,queue的遍历速度进行了下测试,代码如下#include#include#include#include#include#include#include#includeint main(int argn, char*[] argv){std::vector vec;std::
我之前没摸过live555,不过公司里有项目一直在用它,现在正好想参考里面的某些功能。由于在linux下调试不方便,所以就想在windows上编译调试了。由于编译过程还是比较简单的,下面就罗列下。1.将live555相关库的头文件目录加入到vs2010的全局包含目录中F:\public_lib\live555\groupsock\includeF:\public_lib\live5
// 获取本地macstd::string getLocalMac(){#ifndef _WIN32int sock_mac;struct ifreq ifr_mac;char mac_addr[30];sock_mac = socket(AF_INET, SOCK_STREAM, 0);if (sock_mac == -1){perror("create so