- 博客(165)
- 资源 (16)
- 收藏
- 关注
原创 php线程安全 非线程安全区别
1.Non Thread Safe版本php适用在使用CGI以及fastCGI的web服务器上,如nginx,lighttpd以及IIS的CGI模式下2.Thread Safe版本php适用在使用ISAPI或者module的web服务器上,如IIS的ISAPI模式或者apache module模式这只是一般的适用区别,并不绝对,也就是说两种版本在web服务器上都能使用,并不一定会出
2011-11-28 11:05:43 2270
转载 nfs挂载相关以及umout问题
在Fast Cache工程中, 当创建 nfs mount 目录 时, 如果 nfs 网络断开情况时, 函数 stat/opendir/df -k 等命令被挂住. 问题产生了, 如何在程序中检查 nfs mount 目录的可访问性而程序又不被挂住?解决思路:1, mount 采用 soft 方式, 当 一个 major timeout 到达后, stat 能返回给调用者. 但如果是 har
2011-11-25 14:53:02 3807
原创 vs2010 vs2008 vs2005 链接libcurl静态库
1.首先下载libcurl库,用vs打开工程文件2.编译时选择lib Bebug和lib relase,得到它的静态库3.在你的工程中包含libcurl库,在预编译指令中添加:BUILDING_LIBCURL4.在依赖库中加入:libcurl.lib(debug就用libcurld.lib) ws2_32.lib winmm.lib wldap32.lib上面4步搞定,就可以链
2011-11-16 08:29:51 11946
原创 不使用局部变量编写strlen
int strlen(char *pstr){ if (*pstr != '\0') return (strlen(++pstr) + 1); else return 0;}使用递归方式实现
2011-09-08 14:49:18 431
原创 c++传递数组大小的方式
1.参数夹带法void fun(int a[], int size){printf("size: %d\n", size);}2.数组引用传递法(缺点,实参数组大小必须和型参匹配)void fun1(int (&a)[100]){print
2011-09-04 16:11:46 920
原创 INNO SETUP 5.4 中文语言包
; *** Inno Setup version 5.1.11+ English messages ***;; To download user-contributed translations of this file, go to:; http://www.jrs
2011-08-08 17:18:53 4563 5
转载 常用的正则表达式
常用的正则表达式1、非负整数:^\d+$2、正整数:^[0-9]*[1-9][0-9]*$3、非正整数:^((-\d+)|(0+))$4、负整数:^-[0-9]*[1-9][0-9]*$5、整数:^-?\d+$6、非负浮点数:^\d
2011-08-08 16:14:25 1116
原创 windows下使用lighttpd+php(fastcgi)+mysql
一.windows下编译配置运行lighttpd1、下载并安装cygwin。 2、下载lighttpd源代码并解压3、在cygwin环境下进入lighttpd的解压目录后,执行: 1> ./configure –prefix=C:/lighthttd2> make 3> make
2011-07-20 12:39:49 3055 4
原创 防止因为自动缓存,导致flash调用http请求返回304的问题
为flash,如:www.xxx.com/1.swf 加上末尾的随机数 www.xxx.com/1.swf?rand()
2011-06-15 13:45:00 1392
原创 javascript与flash的调用
1.jquery获取flash对象:var flashObj = $("#id")[0]; 2.javascript调用flash所需代码:flash部分:import flash.external.*; function MyFlashFunction(str: String): String{ return "FlashFunction Return";}
2011-06-15 13:42:00 688
原创 64位boost编译
<br />例:<br />bjam --toolset=msvc-10.0 address-model=64 ... ...
2011-05-26 16:43:00 788
原创 libcurl提交表单上传文件
<br />不多说了,curl的http上传文件代码示例,有需要的可以参考。<br /> <br />int http_post_file(const char *url, const char *user, const char *pwd, const char *filename)<br />{<br /> assert(url != NULL);<br /> assert(user != NULL);<br /> assert(pwd != NULL);<br />
2011-04-06 12:50:00 5762 4
原创 wlan scan record
http://msdn.microsoft.com/en-us/library/ms706556%28v=VS.85%29.aspx
2011-03-29 22:38:00 1018
原创 windows下QT对话框禁止放大缩小以及拖动
<br />我没怎么碰过QT,新建的工程后,默认的QT主窗口会有最小化最大化以及关闭按钮,还有就是拖动窗口可放大缩小。发现QT不像MFC以及Delphi那样可以直接禁止拖动并且去掉工具栏最大化按钮。因此花了几分钟把问题解决了,以下是解决方式:<br /> <br />直接在main中:<br /> Qt::WindowFlags flags = 0;<br /> flags |= Qt::WindowMinimizeButtonHint;<br /> flags |= Qt::Wi
2011-03-29 16:53:00 12383 2
原创 进程提升权限
简单的提升进程权限代码,里面用到的权限参数根据不同需要设置: HANDLE hToken; TOKEN_PRIVILEGES tkp; //提升权限 if(!::LookupPrivilegeValue(NULL, SE_DEBUG_NAME,&tkp.Privileges[0].Luid))
2011-03-29 14:37:00 593
转载 C++中extern “C”含义深层探索
<br />1.引言<br /> C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。<br /> 2.从标准头文件说起<br /> 某企业曾经给出如下的一道面试题:<b
2011-03-26 12:48:00 625
转载 Qt显示Flash的两种方法 QWebview和QAxWidget
<br /> <br />【QWebview】的必要设置<br />WebView->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);<br />WebView->settings()->setAttribute(QWebSettings::PluginsEnabled, true);//重要<br /><br />用的是QT4.6 免费版难道不支持播放Flash了? TNND 没调试出来 显示Flash的位置只
2011-03-17 16:19:00 14614 1
转载 关于QT与Flash互操作
这几天在学习Action Script,在网上乱逛发现QT与flash互操作的可能性,试验了一把,居然成功了。首先是QT调用Flash中的函数:QT中有一个控件叫QAxWidget,加载一个.swf文件代码如下:QAxWidget flash(this,NULL); flash.setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}")); flash.dynamicCall("LoadMovie(long
2011-03-17 14:06:00 2463
原创 printf参数介绍
<br />int printf(const char *format,[argument]);<br /> format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type 规定数据输出方式,具体如下: <br /> 1.type 含义如下: <br /> d 有符号10进制整数 <br /> i 有符号10进制整数 <br /> o 无符号8进制整数 <br /> u 无符号10进制整数 <br /> x 无符号的16进制数字,并以小写a
2011-03-16 21:46:00 739
原创 如何在MFC DLL工程添加DllMain入口
<br />今天碰巧看到有人问了这个问题.<br /> <br />他使用的是MFC DLL,但是却想添加DllMain作为入口函数,但是很明显直接编译肯定编不过.所以我在这里介绍一个通过编译的简单方法:<br /> <br />右键 -> 项目属性 -> 配置属性 -> c++ -> 预处理器<br />删除_USRDLL即可<br /> <br />希望可以帮助一些朋友解决困难
2011-03-13 22:15:00 4914
转载 VC中用代码判断windows的版本
<br /> <br />MSDN上有一个表<br />Operating systemVersion numberdwMajorVersiondwMinorVersionOtherWindows 76.161OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATIONWindows Server 2008 R26.161OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATIONWindows Server 20086.060
2011-03-02 10:11:00 3928 1
转载 (纯属转贴,没有测试过)如何优化Mysql千万级快速分页,limit优化快速分页
<br />MySQL数据库优化处理实现千万级快速分页分析,来看下吧。<br />数据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是逐渐,vtype是tinyint,vtype是索引。这是一个基本的新闻系统的简单模型。现在往里面填充数据,填充10万篇新闻。<br />最后collect 为 10万条记录,数据库表占用硬盘1.6G。OK ,看下面这条sql语句:<br />select id,title fr
2011-02-21 11:23:00 878
原创 从缓冲上看阻塞与非阻塞socket在发送接收上的区别
最近在网络上看到一些帖子以及回复,同时又搜索了一些网络上关于阻塞非阻塞的区别,发现很多人在描述两者的发送接收时操作返回以及缓冲区处理的区别时有不同程度的误解。所以我想写一篇文章来纠正错误,并作为记录方便查阅,如有转载,注明作者(jwybobo2007)以及出处即可。 首先soc
2011-01-26 11:03:00 10857 29
原创 socket选项自带的TCP异常断开检测
TCP异常断开是指在突然断电,直接拔网线等等情况下,如果通信双方没有进行数据发送通信等处理的时候,无法获知连接已经断开的情况. 在通常的情况下,为了使得socket通信不受操作系统的限制,需要自己在应用层实现心跳包机制,来检查异常断开的情况,一般的方式就是服务器在一段时间没有收到客户端数据包时,定时发包,然后客户端回应,如果已经出现异常断开则服务器接收会返回错误,而客户端在指定时间内没有收到数据包,则主动向服务器发包,得到错误就说明断开.诸如此类的方式就是自己实现的心跳包机制. 但操作系统本身也自带
2011-01-25 12:51:00 7647
原创 TCP滑动窗口和SO_RCVBUF之间的实际关系
上次转载了一篇文章http://blog.csdn.net/jwybobo2007/archive/2010/12/30/6107419.aspx,上面提到了TCP窗口大小与SO_RCVBUF选项之间的关系.但其实这篇文章描述的是有问题的. 在以Unix为核心的一些操作系统中(不一定都是),SO_RCVBUF选项确实决定了TCP窗口的大小.你设置为多少窗口就为多少.但在Windows上确并非如此,通过一些抓包工具分析后,你会发现这两者并不是一一对应关系,MSDN的说明上确实也告知这一事实. 如使
2011-01-21 10:14:00 5939 1
原创 TCP滑动窗口和socket缓冲区之间的关系(记录)
一、TCP的滑动窗口大小实际上就是socket的接收缓冲区大小的字节数二、对于server端的socket一定要在listen之间设置缓冲区大小,因为,accept时新产生的socket会继承监听socket的缓冲区大小。对于client端的socket一定要在connet之前设置缓冲区大小,因为connet时需要进行三次握手过程,会通知对方自己的窗口大小。在connet之后再设置缓冲区,已经没有什么意义。三、由于缓冲区大小在TCP头部只有16位来表示,所以它的最大值是65536,但是对于一些情况来说需要使
2010-12-30 16:05:00 5398 1
原创 How To Manage User Privileges Programmatically in Windows NT
<br />http://support.microsoft.com/default.aspx?scid=kb;EN-US;132958
2010-12-06 16:53:00 688
原创 boost ptime 与 time_t等的转换
<br /> <br />#include <boost/date_time/posix_time/posix_time.hpp><br />#include <boost/date_time/gregorian/gregorian.hpp><br />#include <iostream><br />#include <stdint.h><br />int main()<br />{<br /> using namespace boost::posix_time;<br /> using namespac
2010-10-16 19:57:00 9756
转载 OpenSSL: 椭圆曲线签名与校验 (ECDSA)
<br />/*<br />目录:<br />--------------------<br />1. 简介<br />2. 生成 ECDSA 密钥对<br />3. 签名<br />4. 校验<br />*/<br /><br />/*<br />1. 简介<br />--------------------<br /> 对 PE 文件做 ECDSA 签名. 签名写入 PE 头部 DOS Stub代码后边. 使用的椭圆<br />曲线是 FIPS 186-2 中的 P-192. 签名长度不超过 56 字节
2010-10-15 09:47:00 7983 4
转载 TCP TIME_WAIT详解
TIME_WAIT状态 TCP要保证在所有可能的情况下使得所有的数据都能够正确被投递。当关闭一个 socket 连接时,主动关闭一端的 socket 将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状态。见图解。当一个socket关闭的时候,是通过两端互发信息的四次握手过程完成的,当一端调用close()时,就说明本端没有数据再要发送了。这好似看来在握手完成以后,socket就都应该处于关闭CLOSED状态了。但这有两个问题, 第一:我们没有任何机制保证最后的一个ACK能够正常送达 第二:网络
2010-10-12 19:16:00 1752
转载 TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
下载源代码这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人叫TCP打孔(我的朋友小妞听说后问“要打孔啊,要不要我帮你去借个电钻过来啊?”“~!·¥%……·!”)。闲话少说,我们先看一下技术背景:Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到
2010-09-28 23:35:00 3705 2
转载 读写锁 共享读 独占写
class ReadWriteLock { public: int m_currentLevel; int m_readCount; HANDLE m_unlockEvent; HANDLE m_accessMutex; CRITICAL_SECTION m_csStateChange; public: ReadWriteLock { m_currentLevel = LOCK_LEVEL_NONE; m_readCount = 0; m_un
2010-09-26 15:02:00 877
转载 使用 OpenSSL API 进行安全编程,第 3 部分: 提供安全服务
如果没有安全的服务器应用程序,那么也就不需要安全的客户机应用程序。使用 OpenSSL,我们可以创建安全的服务器应用程序,尽管文档让这一切看起来非常复杂,但实际上并非如此。本文中我们将学习如何使用在这个 3 部分系列文章 的 第 1 部分 中学习到的概念来构建安全的服务器应用程序。本系列文章的前两部分讨论了使用 OpenSSL 来创建客户机端应用程序的内容。第 1 部分 讨论了使用 OpenSSL 创建基本安全客户机的问题,而 第 2 部分 则深入讨论了有关数字证书的问题。在阅读本文的读者给我发回很多 e-
2010-09-15 16:01:00 818
转载 使用 OpenSSL API 进行安全编程,第 2 部分: 安全握手
安全套接字层(Secure Sockets Layer,SSL)会话中的安全握手非常重要,这是因为该连接中的所有安全性都是在握手过程中建立的。本文将介绍如何增强 SSL 握手的安全性,从而防止中间人(MITM)攻击 —— 此时入侵的一方会伪装成另外一个可信源。本文还会介绍数字证书的概念,以及 OpenSSL API 如何处理数字证书。不久之前,安全握手是双方的业务得以实现的一个标记。毕竟,握手是一次面对面的机会,可以对潜在的合作者进行评价。安全且可信的握手意味着事务的双方都相信它们正在做的事情对双方都是有益
2010-09-15 15:56:00 806
转载 使用 OpenSSL API 进行安全编程,第 1 部分:API 概述
学习如何使用 OpenSSL —— 用于安全通信的最著名的开放库 —— 的 API 有些强人所难,因为其文档并不完全。您可以通过本文中的提示补充这方面的知识,并驾驭该 API。在建立基本的连接之后,就可以查看如何使用 OpenSSL 的 BIO 库来建立安全连接和非安全连接。与此同时,您还会学到一些关于错误检测的知识。OpenSSL API 的文档有些含糊不清。因为还没有多少关于 OpenSSL 使用的教程,所以对初学者来说,在应用程序中使用它可能会有一些困难。那么怎样才能使用 OpenSSL 实现一个基本
2010-09-15 14:59:00 1218 3
原创 编译OpenSSL 动态库/静态库以及运行时库的选择
Windows下编译OpenSSL的方法1、安装ActivePerl初始化的时候,需要使用perl2、使用VS下的Visual Studio 20xx Command Prompt进入控制台模式3、解压缩openssl的包,通过cd命令切换到openssl的目录4、执行:perl configure VC-WIN325、执行:ms/do_ms6、选择不同的编译结果1) 执行:nmake -f ms/ntdll.mak该命令生成动态库,默认使用的是MD2) 执行:nma
2010-09-06 17:51:00 4631
原创 KDevelop与libtool的问题
<br />今天简单尝试了一下KDevelop这个IDE,只想试一下"Hello World",在新建完一个输出hello world的工程后,发现编译不过:<br /> <br />../libtool: line 1146: X.deps/mytest.Tpo: No such file or directory<br /><br /> <br />到网上搜索了一下,看了下解决方法,因此把它记录下来:<br /> <br />1.找到libtool2.2.6 的ltmain.sh :一般在/usr/sh
2010-08-29 13:05:00 955
linux开发常用帮助文档
2011-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人