- 博客(25)
- 资源 (9)
- 收藏
- 关注
原创 Nginx服务模块开发
纵观网上各种关于nginx的模块开发的资料都是基于HTTP的模块开发,这里就整理一篇是基于TCP协议的服务模块开发,并且给出一套自定义服务模块的源码,该模块主要实现的功能是监听某一端口,然后把接收到的客户端数据转发的上流服务器,再把上流服务器的返回数据回传给客户端。模块源码下载地址:https://code.csdn.net/gamer727/nginx_mypo_module Nginx的服务模
2016-01-02 22:19:11 986
原创 libcef调试render进程
这篇文章的前提你的libcef能够正常启动,能打开一个基本的网页,但是不清楚一些接口怎样在render进程调用和调试的人来说的。第一步,实现“CefRenderProcessHandler”接口,关键代码:class ClientApp : public CefApp, public CefRenderProcessHandler{public: ClientApp(); // CefA...
2018-03-31 09:51:17 1882
原创 ffmpeg解析HD264后图像上下翻转和颜色不对解决方法
接收到hd264的数据用ffmpeg进行解析后发现,画面是上下翻转的,网上有的人说可以在显示的时候在把图像上下翻转过来,但这样的效率明显很低,后来发现还有更高效的方法,只需要重排几个数组的地址就可以了: int result = avcodec_decode_video2(codec_, pFrame_, &got_frame, &pkt); //关键是这一步,上下翻转图像
2016-01-03 22:03:54 3339
原创 mima接收数据时粘包和大小端问题解决方案具体实现
使用java的mina框架接收数据总是会把数据拼接在一起然后再发送给上层的,所以在自定义网络传输协议的时候一定就在数据开始的固定位置处存放主体内容的数据长度,要不就是固定每个数据包的固定长度,其实两种方案的实现方式,只不过在拆包的时候一个变长,另一个是固定长度。下面就来开始代码的具体实现: 第一步,定义一个全局的变量接收保存接收的数据:public class ClientHandler exte
2015-12-31 09:58:30 1225
原创 java解析c语言之Javolution的坑
java解析c语言的结构体有好多种方案,经过对比之后还是选择了Javolution,主要是它的用法和平常c结构体的用法看起来差不多,而且一开始测试用的时候效果还可以,但是后来随着使用越多,那些坑就慢慢暴露出来了。 坑一: 对齐方式会变。 public static class UserInfo_t extends Struct { public final Unsigned
2015-12-29 15:50:10 4181 1
原创 如何printf64位整型!
对于GCC:64位整数类型是long long输出方法:printf("%lld ",x);同时支持cin coutllu : 输出longlong的无符号数。llx : 输出longlong的十六进制VC++等(PKU使用):64位整数类型是__int64输出方法: printf("%I64d ",x);不支持cin cout
2015-08-21 11:12:44 1389
原创 linux遍历目录C语言
#include int i; char *lpcCFile; DIR *lptDir;struct dirent *lptCurFile;lptDir=opendir("pathdir');while(lptCurFile=readdir(lptDir) != NULL){/* 判断当前指针是否时候为目录 *
2015-08-21 11:11:22 405
原创 sscanf()中表达式的用法
sscanf(data,"username=%[^&]&password=%[^&]",username,password);其中红色字体部分“[^&]”代替了“%s”,表示格式化的字符串到“&”结束,如果想要是其他分隔符只需要替换“&”符号。具体例子:代码: char *src="--BC-http=456"; char mod
2015-08-21 11:07:55 490
原创 解决CGI输出中文乱码
我们在进行cgi程序开发时经常需要向界面输入一些html脚本,用作界面显示。如果这些脚本中有中文,再输出到界面上经常会有乱码,无论是在cgi程序中使用printf输出,或者在asp的函数中输出。其中最关键的就是要在保存这些cgi的或函数的的c程序时,要将其保存为gb2312或者gbk,再进行编译。然后在浏览器访问cgi或asp程序,才能得到正确的中文输出。
2015-08-21 11:02:44 2024
原创 linux改变文件文件的大小
以下是代码片段片段是实现文件大小减少16个字节,主要函数是ftruncate。num = lseek(fd, 0, SEEK_END);ftruncate(fd, num-16);
2015-08-21 10:58:19 1552
原创 dblink的使用
有时候的业务需要参照其他数据库的数据。我们可以在程序中分别从两个数据库中取值然后处理。但这样开发效率和性能都不是很好。如果两个数据库都是PostgreSQL的话,用扩展的DBLINK功能非常简单。比如一个数据db1,db2。首先需要把db1加入dblink扩展。示例1:取得db2的用户表的用户名[sql]view plaincopyprint?SELECT
2015-08-19 14:40:04 932
原创 PostgreSQL使用技巧
##不重启数据库,更新配置/usr/local/pgsql/bin/pg_ctl reload -D /home/postgres/data远程备份:/usr/local/pgsql/bin/pg_dump dbname -f db_backup -h 192.168.1.2 -U username远程还原: /usr/local/pgsql/bin/psql -h 1
2015-08-19 14:34:57 921
原创 Linux网络编程下send到一个disconnected socket上
在Linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。这个信号的缺省处理方法是退出进程,大多数时候这都不是我们期望的。因此我们需要重载这个信号的处理方法。调用以下代码,即可安全的屏蔽SIGPIPE: struct sigaction sa; sa.sa_han
2015-08-19 14:30:58 637
原创 make的时候能够检查头文件是否有更新过
在一般的Makefile文件里,如果我们的只对头文件进行修改,make时是不会检查的更新的,所有有时候为什么改了些参数后make完没反应,需要clean之后重新make才生效。如果要make是检查头文件可以:这样写:%.o : %.c XXX.h gcc -IM -c $@ $这里有两个关键点:1、头文件放到依赖位置;2、编译时添加“-IM”选项,一定要大写。
2015-08-19 14:24:17 1698
原创 应用程序中嵌入的网页运行时出现“脚本错误”解决方法
CComPtr pWB2; HRESULT hr; hr = m_wndIE.QueryControl(&pWB2); if (pWB2) { CComVariant v; CComBSTR url(pszUrl); pWB2 ->put_Silent(true); //加上这句就解决了!!!!! hr = pWB2
2015-08-19 14:20:26 1324
原创 Linux运行脚本作为守护进程的各种方法
1:nohup ping www.ibm.com &2:setsid ping www.ibm.com3:(ping www.ibm.com &)
2015-08-19 14:15:16 1821
原创 linux查看目录占用空间
# du -sh DirPath比如: du -sh /home/snail linux查看目录大小及硬盘大小的命令:# du -ks ---in all# du -k ---every lasts表示汇总目录下的内容,k表示以1024字节为单位,m表示以一兆字节为单位
2015-08-19 14:13:03 523
原创 监视某进程,保持进程处于启动状态(非正常退出后能自动启动)
####### nohup ./protect_process & ######这个是启动本脚本时作为守护进程,即使退出当前终端,进程也不会被关掉###cmd是被监视的进程的启动命令###cmd=XXX##检查进程是否存在的函数CheckProcess(){ if [ "$1" = "" ]; then
2015-08-19 14:10:50 2728
原创 基于IOS的sqlite数据库封装
DBController是基于IOS下的Object-C实现的,封装了对sqlite数据库的常用的查询、插入、更新和删除操作, 不需要再次修改和实现数据库的底层接口操作,直接申明模型类,然后调用DBController来进行数据的操作。当前项目的限制就是模型类的成员数据类型只支持整形、浮点型、NSString类型,需要支持其他类型的话, 需要修改DBController的源码了。
2015-08-19 10:58:41 769
原创 php过滤斜杠等特殊字符
$ArrFilters=array("'","","\x{5c}");function IsExistStrings($SrcString, $ArrFilters){ foreach ($ArrFilters as $key=>$value){ if (@preg_match("/$value/",$SrcString)){
2015-08-19 10:56:45 841
原创 php显示各种时间段
先把时间设置成北京时间date_default_timezone_set('PRC');当前时间$curtime=date("Y-m-d H:i:s", time());由于周一的划分跟我们平时所理解不太一样,所以要分开判断。if(date('D') == 'Mon'){上一周: $last_week_start=date("Y-m-d H:i:
2015-08-19 10:35:41 467
原创 GoAhead网页提交内容
提交的方式有两种get和postget: 这种传送方式所传输的内容有长度限制,一般在一百多字节以内。但是它所传送的 特殊字符 不需要的转换。post: 这种传送方式的内容可以比较大,可以大于2048字节,传送文件也是用这种方式,传送文件需要在form里添加enctype="multipart/form-data"。 post不加文件传输方式的话,传送的内容和get的一样,不过
2015-08-18 22:24:57 1061
原创 Linux下UDP端口扫描
由于UDP协议是非面向连接的,对UDP端口的探测也就不可能像TCP端口的探测那样依赖于连接建立过程,这也使得UDP端口扫描的可靠性不高。所以虽然UDP协议较之TCP协议显得简单,但是对UDP端口的扫描却是相当困难的。下面具体介绍一下UDP扫描方案: 方案1:利用ICMP端口不可达报文进行扫描 本方案的原理是当一个UDP端口接收到一个UDP数据报时,如果它
2015-08-17 17:42:28 1704
原创 Windows编程的兼容性问题
问题出现在软件发布之后,在个别用户的电脑上的win7系统运行我们的软件总是无法运行,运行就直接给出“XXX module 已停止工作”的提示框,但是如果运行选中运行程序右键,在兼容性那里选择“XP (sp3)”后又能正常运行。但是更奇怪的是在我们公司里的win7系统同样运行,无需选择兼容性,直接就能正常运行,而且很多用户上的电脑也是win7系统,同样也是能正常运行。自己的系统上怎么样也重现
2015-08-17 09:50:26 1055
RSA密钥对生成工具源码
2012-12-24
非对称的密钥的导出和导入
2012-12-24
tomcrypt加密函数库
2012-12-24
SM3密码杂凑算法
2012-12-24
new--miracl
2012-12-24
IBE基于身份的加密系统的解密程序
2012-12-24
IBE基于身份的加密系统的加密程序
2012-12-24
基于VC++的测评系统(内附详细设计文档)
2012-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人