2012年2月8日
摘要: 原文地址 : http://www.pjsip.org/pjsua.htm介绍 PJSUA是一个开源的命令行SIP用户代理(软电话),用PJSIP协议,PJNATH,和PJMEDIA实现。 它虽然只有很简单的命令行界面,但是功能齐全。SIP功能: 多个id(帐户注册); 多个呼叫; 支持IPv6(在1.2版本中添加); PRACK(100rel,RFC 3262); UPDATE (RFC 3311); OPTIONS; 呼叫保持; 呼叫转移; 简单的PIDF和XPIDF的支持(订阅/通知,RFC 3265,3856,3863); ... 阅读全文
posted @ 2012-02-08 14:48 Mike_Zhang 阅读(14837) 评论(0) 推荐(0) 编辑
  2012年2月4日
摘要: 本文定位:手机通过电脑上网,睡觉时需要远程关机(太冷,懒得起来^_^)。前面提到过Android手机如何通过电脑上网(http://www.cnblogs.com/MikeZhang/archive/2012/02/04/androidComputerWifi.html),这篇文章是它的后续,介绍如何远程关机(以windows为例,提供一个思路)。想象下这个场景:冬天在被窝里面拿着Android手机通过电脑上网(看视频……),睡觉时还要爬起来去关电脑……很不爽吧!所以我们需要远程关机软件,可第三方的信不过,怎么办?自己写一个呗!其实很简单,原理如下:windows的关机命令为"shu 阅读全文
posted @ 2012-02-04 10:45 Mike_Zhang 阅读(3924) 评论(6) 推荐(3) 编辑
摘要: 本文定位:没有wifi,想让手机通过电脑的有线连接上网。 android手机可以通过wifi上网,这个很好。可当没有wifi的时候怎么上啊,3G >流量受限,看视频很不划算!我这里总结了几种方法供大家参考。 方法一:usb连接线,手机有线上网我这里说下大致流程,具体可见http://www.ange 阅读全文
posted @ 2012-02-04 00:00 Mike_Zhang 阅读(100608) 评论(4) 推荐(9) 编辑
  2012年2月1日
摘要: 本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。 测试环境:CentOS 6.0_x64 + Python 2.6 如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下: 这个就不解释了,不懂的朋友查询下top的帮助文档。这里要实现的是通过pyt 阅读全文
posted @ 2012-02-01 23:42 Mike_Zhang 阅读(10729) 评论(4) 推荐(1) 编辑
  2012年1月30日
摘要: 本文适用场景:想用Tkinter开发界面程序并屏幕居中,但没找到相应的API。这两天玩了玩Tkinter,感觉不错,就是屏幕居中这个问题在网上搜了很长时间也没 找到答案,最后没办法,看它的文档,用自己的方法实现了。方法很土,就是获取初始化的窗体大小和屏幕大小,再通过计算得到大体值。以下是代码: 1 #! /usr/bin/python 2 ''' 3 File : screenCenter.pyw 4 Author : Mike 5 E-Mail : Mike_Zhang@live.com 6 ''' 7 from Tkinter import 阅读全文
posted @ 2012-01-30 07:18 Mike_Zhang 阅读(4117) 评论(0) 推荐(1) 编辑
  2012年1月29日
摘要: python的help文档很好,就是有时候help一下给出好几页来,甚至有些帮助根本就看不到了(我想应该有其他方法可以解决,只是我不想去查了),因为这个可以通过一个很简单的python脚本搞定。这里举例为证,比如我想得到Tkinter的帮助文档,在交互模式下,我可以这样输入:>>> import Tkinter>>> help(Tkinter)按下回车则会看到壮观的刷屏效果……当你滚动鼠标看比较靠前的帮助文档时会发现找不到。这显然不是我需要的。或许是我不应该这么输入,我这样的输入导致过量的输出。可事实是我真的很需要关于Tkinter的全部文档,怎么办?我想可 阅读全文
posted @ 2012-01-29 21:53 Mike_Zhang 阅读(3916) 评论(2) 推荐(1) 编辑
  2012年1月20日
摘要: RFC文档有很多,有时候在没有联网的情况下也想翻阅,只能下载一份留存本地了。看了看地址列表,大概是这个范围:http://www.networksorcery.com/enp/rfc/rfc1000.txt...http://www.networksorcery.com/enp/rfc/rfc6409.txt哈哈,很适合批量下载,第一个想到的就是迅雷……可用的时候发现它只支持三位数的扩展(用的是迅雷7),我想要下的刚好是四位数……郁闷之下萌生自己做一个的想法!这东西很适合用python做,原理很简单,代码也很少,先读为快。代码如下: 1 #! /usr/bin/python 2 '&# 阅读全文
posted @ 2012-01-20 15:05 Mike_Zhang 阅读(2755) 评论(1) 推荐(0) 编辑
  2012年1月19日
摘要: 想象一下,当我们写了个程序,开始是在命令行下运行的程序,后来用MFC之类的改写为窗体程序,原先用printf输出的trace都不可见了,但是我们又需要(输出到文件分析),怎么办?1、开始写的时候你定义一个MyTrace的宏;2、你可以把printf换成fprintf;3、使用输出重定向。第一种情况很方便,可程序已经写出来了,显然不大可能;第二种情况可以是可以,但劳动量比较大;第三种我觉得可以。还记得不,在windows终端输入 "dir > 1.txt",或在linux终端输入"ls > 1.txt",即可实现把当前目录的文件列表导出到&qu 阅读全文
posted @ 2012-01-19 13:38 Mike_Zhang 阅读(5554) 评论(1) 推荐(3) 编辑
  2012年1月17日
摘要: 普通变量可以通过指针进行访问,用起来很方便,现在我有个想法,就是玩函数也要玩的这么炫,我想给它写个适配器……这里我主要是用可变参数和函数指针来实现,有两个测试代码片段:test1()和test2()。其中test1用的是可变参数的函数指针,test2用的是宏实现的函数适配器。代码如下: 1 /* 2 File : adapter.c 3 Author : Mike 4 E-Mail : Mike_Zhang@live.com 5 */ 6 #include <stdio.h> 7 #include <string.h> 8 #include <stdlib.h&g 阅读全文
posted @ 2012-01-17 17:24 Mike_Zhang 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 在linux下写几个测试程序,还要一行行的输入g++命令进行编译,当经常改测试代码的时候,那一次次的敲(或者一次次的上线箭头选)也感觉不爽,不如make来的快。用Makefile的好处就不用多说了,这里我写了个脚本,其功能是自动搜索当前目录(不包括子目录)下的“.c”文件生成Makefile文件。代 阅读全文
posted @ 2012-01-17 13:53 Mike_Zhang 阅读(6627) 评论(2) 推荐(0) 编辑
  2012年1月7日
摘要: linux平台示例:/*File : thread1.cAuthor : MikeE-Mail : Mike_Zhang@live.com*/#include <stdio.h>#include <pthread.h>#include <time.h>void m_threadSleep(int sec,int nsec){ struct timespec sleepTime; struct timespec returnTime; sleepTime.tv_sec = sec; sleepTime.tv_nsec = nsec; nanos... 阅读全文
posted @ 2012-01-07 17:09 Mike_Zhang 阅读(4416) 评论(0) 推荐(0) 编辑
摘要: 一、环境1、Windows XP 2、PlatformSDK : 5.2.3790.2075.51.PlatformSDK_Svr2003R2_rtm.img3、Directx : DXSDK_Jun10.exe4、openssl : openssl-0.9.8e5、Python : python2.7加入VC目录二、编译设置pjsua工程为活动工程并编译。若出现以下错误:"os.obj : error LNK2001: unresolved external symbol _pj_get_sys_info"则将pjlib\src\pj下的os_info.c加入pjlib工 阅读全文
posted @ 2012-01-07 17:09 Mike_Zhang 阅读(1055) 评论(0) 推荐(0) 编辑
  2011年12月28日
摘要: 这段时间一直在写工具,遇到一些问题,Google下解决了,这里想把解决问题的成果提取出来分享下,也方便我以后使用,^_^写工具就应该尽量的灵活,可配置性强,配置文件是少不了的。之前用过自定义配置文件(我的另一篇文章中提到过:http://www.cnblogs.com/MikeZhang/archive/2011/11/19/2255169.html),灵活是灵活,可写起来有点麻烦,而且如果想把部分逻辑写在外面,在配置文件中弄个函数就很不随意了——自己要写个脚本引擎进行解析……最后决定用lua作为配置文件的解析器,这里有个简单的demo: 1 /* 2 File : demo.cpp... 阅读全文
posted @ 2011-12-28 12:36 Mike_Zhang 阅读(2224) 评论(0) 推荐(1) 编辑
  2011年12月27日
摘要: 写程序用到了配置文件,感觉lua比较适合,就选lua了。开始时所有配置都从文件加载,直接调用一个函数就OK了,后来考虑到如果配置文件不存在的话程序也要正常运行,所以程序需要默认配置。可我不想改变原来的结构,考虑将默认的配置脚本以字符串的形式硬编码在程序里面,这时遇到一个问题 :默认配置大概6~7K的大小,如果一行行的敲,那感觉肯定是非常不爽……这重复性的劳动就交给电脑做吧,最后决定将这部分代码让电脑写(我之前写过了,它照着抄就是了 *_*)……可它不写啊,那好吧,我写个python代码教它吧: 1 #! /usr/bin/python 2 # fileName : writeCode.py . 阅读全文
posted @ 2011-12-27 17:56 Mike_Zhang 阅读(991) 评论(0) 推荐(0) 编辑
  2011年11月19日
摘要: 用python读取配置文件比较方便,比如下面一个配置文件: 0.ini文件:---------------文件开始----------------[global]ip = 192.168.1.100 ;ip地址port = 1234MAC = 0x414243444546;mac---------- 阅读全文
posted @ 2011-11-19 14:24 Mike_Zhang 阅读(24267) 评论(0) 推荐(1) 编辑