自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 SIP协议详解&eXosip源码库用法分析

1、概述1.1 SIP概念      会话初始协议SIP(Session Initiation Protocol)是一个应用层的控制协议,可以建立、修改和结束多媒体的会话。它是由IETF提出并主持研究的一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。这些会话包括Internet多媒体会议、Internet电话、远程教育以及远程医疗等

2015-12-15 11:43:05 11745

原创 Linux本地socket通信--AF_UNIX

我们熟知的sockek通信一般都是基于IP的,最近见到了本机客户端与服务端通信的方法(虽然lo地址也可以本机通信),写了一些程序做实验,主要实现客户端和服务端套接字的连接、各自创建收发线程进行通信。由于功能没有优化,纠结了很久才贴上来,重点是AF_UNIX的功能已经实现了。其实AF_UNIX和AF_INET交互的流程是一样的,只不过创建套接字的宏不一样,以及数据结构的填充不一样。这种机制对Linu

2015-12-05 11:14:31 2273

原创 Linux下创建shell命令集合——你意想不到的软连接

1、先来测试下面的代码//test.c#includeint main(int argc, char *argv[]){ printf("%s\r\n", argv[0]); if ((!strcmp("add", argv[0])) || (!strcmp("./add", argv[0]))) { printf("To do add handle\r\n"); } els

2015-11-23 14:17:10 2297

原创 C语言常见字符串操作函数

strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 str

2015-11-19 11:24:08 830

原创 GB2312、UTF-8等编码转换函数iconv()使用方法

用于GB2312、UTF-8等字符编码的转换,一次转换需要调如下三个函数:(1) iconv_t iconv_open(const char *tocode, const char *fromcode);此函数说明将要进行哪两种编码的转换,tocode是目标编码,fromcode是原编码,该函数返回一个转换句柄,供以下两个函数使用。(2) size_t iconv(iconv_t cd

2015-11-18 14:37:48 1388

原创 C语言获取时间字符串

有时候用时间命名文件之类的可以用得到,记录一下#include #include #include #include #include int main(){ char szTimeStr[32] = {0}; time_t iNowTime = 0; struct tm *pstNowTransfer = NULL;  iNowTime = time(

2015-11-18 14:26:50 1568

原创 GB2312和UTF-8

GB2312简介        GB2312编码范围:A1A1-FEFE,其中汉字编码范围:B0A1-F7FE。        GB2312编码是第一个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5月1日开始使用。GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。同时,GB2312编码收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄

2015-09-12 13:44:37 69598

原创 Makefile中赋值符号=, :=, ?=, +=的区别

1、举例调试ifdef DEFINE_VAR VAR = 1endififeq ($(OPT), define) VAR ?= 2endififeq ($(OPT), add) VAR += 3endififeq ($(OPT), recover) VAR := 4endifall: @echo " VAR = $(VAR)"

2015-08-04 10:16:45 638

原创 C标准预定义宏,调试时加打印很有用

#includeint main(int argc, char *argv[]){ printf("File:[%s]\r\n", __FILE__); printf("Function:[%s]\r\n", __FUNCTION__); printf("LineNum:[%d]\r\n", __LINE__); printf("Data:[%s]\r

2015-07-22 20:11:37 1257

原创 EFM8单片机与I2C外设通信

最近帮同学做一个项目,开发板是EFM8单片机,支持SPI和I2C协议(SMBus)。很久没搞过单片机了,而且条件限制,为了使单片机和外设成功通信,花了一个星期时间。刚开始使用SPI,发现代码逻辑都没问题,就是结果不对(后来知道是因为带中断的程序单步调试导致的,说多了都是泪),调了几天发现SPI确实调不通,就换了I2C,半天时间搞定,哈哈。本文重点解释I2C,废话少说了。1、简介I2C(In

2015-07-12 12:10:58 4129 1

原创 pthread_create()创建线程时传入多个参数

由于接口只定义了一个入参void *argint pthread_create(pthread_t *tidp,const pthread_attr_t *attr, (void*)(*start_rtn)(void*),void *arg);所以,如果想传参数,需要封装结构体。int PTHREAD_CTREATE(pthread_t *tidp,const pthread_at

2015-07-09 18:45:47 4435

原创 Ubuntu14环境下minigui安装问题记录--object.lo错误

minigui3.0.12在Ubuntu14上面编译不过去?出现这个错误:object.h:275:9: error: incompatible types when assigning to type 'va_list' from type 'struct __va_list_tag *'由于本人虚拟机系统是Ubuntu64位的,看了源码之后,发现有个变量是 *u_32*,所以怀疑是系统

2015-07-05 12:43:42 1570 1

原创 C typedef的用法 结构体指针的用法

头文件:#include#ifndef _MAIN_H_#define _MAIN_H_typedef struct{ int port; double speed; double time;}*Handle;extern double getspeed(Handle hand);#endifgetspeed函数#include"

2013-10-09 16:50:26 1842

原创 Makefile中的$@, $^, $< , $?, $%, $+, $*

记性不好,多写博客 $@  表示目标文件$^  表示所有的依赖文件$$?  表示比目标还要新的依赖文件列表

2013-10-08 10:39:33 16192

原创 数据结构的有关概念

一、数据的有关概念1、数据表示信息的且能被计算机存储、处理的各种物理符号统称为数据【Data】。2、数据项具有独立逻辑含义且不能再分解的数据称为数据项【Data Item】。3、数据元素数据元素【Data Element】是相关数据项的集合。4、数据对象具有相同性质的数据元素构成的集合称为数据对象【Data Object】。***相关数据项的集合构成一个

2013-09-25 10:40:14 1014

原创 Android开发HTTP头部解释

HTTP 头部解释1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。 2. Accept-Charset:   浏览器申明自己接收的字符集   Accept-Encoding:  浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法  (gzip,deflat

2013-09-06 14:33:12 965

原创 HTTP的连接

可以用.connect()连接,也可以通过.getOutputStream()或者.getInputStream()隐含连接(虽然API上没有说明)。通过实验,不用.connect(),把connection.setDoOutput(true)等语句放在.getOutputStream()或者.getInputStream()之后会报错,说已经连接。

2013-09-06 14:00:14 681

原创 C层实现多线程测网速

可能这个程序有很多问题,所以请各位大婶批评指正,勿喷! Server端:#include#include#include#include#include#include#include #include #include #include #define BUFSIZE 1024pthread_t thread[4];doubl

2013-09-06 09:02:40 1691

原创 adb cannot execute-Permission denied

在adb调试的时候,运行命令有可能会提示cannot execute-Permission denied,解决办法是要重新挂载一下:mount -t yaffs2 -o remount,rw,noatime,nodiratime /dev/mtdblock0 /sdcard

2013-09-03 17:30:16 3629

原创 Android开发Camera类照相机,前后摄像头切换,分辨率读取和调节

package com.example.camera722;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import

2013-08-15 10:52:01 5861

原创 Android录音程序,生成裸数据,没有加Header

public class MainActivity extends Activity {      // 音频获取源       private int audioSource = MediaRecorder.AudioSource.MIC;      // 设置音频采样率,44100是目前的标准,但是某些设备仍然支持22050,16000,11025       private

2013-08-02 14:13:36 1180 1

空空如也

空空如也

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

TA关注的人

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