my study record
文章平均质量分 53
jaylong35
因为有所以没有
展开
-
常见的WEB针对客户机端的攻击方式与防护
1.通过绕过对输入选项的限制进行攻击:本方式是针对现在的WEB应用程序特点,即将网页源码下载到客户终端的机子上再运行的特点。通过对下载到本地的文件中的内容进行修改从而当运行下载到本地的更改过的文件时就可以运行攻击者自己改过的代码,从而可以绕过本身网站对用户输入的限制。攻击方式:第一步将网站的源码下载到本地机子上;第二步对源码中的一些输入限制条件进行修改,使之能够满足攻击者的需求;第三步原创 2010-03-16 14:35:00 · 1406 阅读 · 0 评论 -
mysql 性能测试——sysbench工具使用
sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:http://sysbench.sourceforge.net。<br /><br />它主要包括以下几种方式的测试:<br /><br />1、cpu性能<br /><br />2、磁盘io性能<br /><br />3、调度程序性能<br /><br />4、内存分配及传输速度<br /><br />5、POSIX线程性能<br /><br />6、数据库性能(OL转载 2011-03-01 09:42:00 · 1091 阅读 · 0 评论 -
C++ floor函数
<br /> 在论坛里看到了一个人的提问,关于如何截断浮点数小数部分的问题。我的第一感觉是使用字符串处理(呵呵,估计知道floor函数的人都会笑话我了)。的确,用C++也算挺久了,竟然不知道C++库中的floor函数,可以轻易实现这个功能,唉,感慨~~~~<br /> <br />就不多说别的了,下面说一下关于floor函数:<br />1、函数原型:<br />double floor ( double x );float floor ( float x );lon原创 2011-02-11 15:14:00 · 20006 阅读 · 3 评论 -
Linux网络编程socket错误分析
<br />socket错误码:<br /> <br />EINTR: 4<br />阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。<br />只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interrupted system call,操作也应该继续。如果recv的返回值为0,那表明连接已经断开,接收操作也应该结束。<br /> <br />ETIMEOUT:110<br />1、操作超时转载 2011-02-15 11:17:00 · 4863 阅读 · 0 评论 -
结构体字节对齐的三句话
<br />1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;<br />2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding);<br />3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。<br /> <br />当然真正计算的时候,还与机器本身配置有关,不同位数的机器,对齐标准不同,结果也不同。原创 2011-02-18 10:51:00 · 735 阅读 · 0 评论 -
VC++获得当前系统时间的几种方案
<br />//方案— 优点:仅使用C标准库;缺点:只能精确到秒级<br /> <br />#include <time.h> <br /> <br />#include <stdio.h> <br /> <br />int main( void ) <br /> <br />{ <br /> <br /> time_t t = time( 0 ); <br /> <br /> char tmp[64]; <br /> <br /> strftime( tmp, sizeof(tmp),原创 2011-03-19 15:48:00 · 655 阅读 · 0 评论 -
MFC CTreectrl 通过DeleteAllItems删除全部节点后,再插入节点不显示问题解决方法
<br /> m_cTreeList.SetRedraw(FALSE); m_cTreeList.DeleteAllItems();//insert or delete here m_cTreeList.SetRedraw(TRUE); m_cTreeList.RedrawWindow();原创 2011-03-26 22:05:00 · 6131 阅读 · 1 评论 -
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
<br />1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回值 <0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况下认为连接是正常的,继续接收。只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返回,不会阻塞着读,因此需要 循环读取<br /><br />2、阻塞模式与非阻塞转载 2011-03-31 11:17:00 · 845 阅读 · 0 评论 -
Mongodb主要功能特点
Mongodb无模式优点1、存储形式,相较于传统的关系型数据库,它可以使用一个表存储原来需要使用多表关联才能存储的数据库。2、存储动态性,相较于传统的数据库当要增加一个属性值的时候要对表大动,mongodb的面向文档的形式可以使其属性值轻意的增加和删除。而原来 的关系型数据库要实现这个需要有很多的属性表来支持。Mongodb存储特点3、Mongodb有两种数原创 2012-01-30 17:17:46 · 12981 阅读 · 1 评论 -
Activemqcpp 在接收设置了TTL的消息时候,出现receive timeout接收不到消息的问题
问题描述:有一个消息的生产者,向Activemq发送带有存活时候ttl的消息。然后另外一个consumer通过receive读取消息。最后发现在读取几条消息后就出现超时读取不到消息。问题原因:因为,activemq server和activemq client两台机器时间不同步造成的。client的系统时间大于server的,所以当client用本地时间去请求消原创 2011-12-30 11:00:24 · 2594 阅读 · 0 评论 -
Mongodb开启与关闭
Mongodb的开启默认启动:$ ./mongodb默认数据保存路径:/data/db/默认端口:27017修改默认路径:--dbpath$ ./mongdb --dbpath /mongodb/把数据存储位置指向一个自己的目录/mongodb/修改默认端口:--port$ ./mongdb --p原创 2012-01-30 12:50:02 · 177073 阅读 · 4 评论 -
linux C++ 实现ping类
//头文件/* * File: CPing.h * Author: jaylong35 * * Created on 2011年1月26日, 下午3:12 */#ifndef CPING_H#define CPING_H#include #include #include #include #include #include #include #includ原创 2011-01-26 18:15:00 · 6426 阅读 · 11 评论 -
Activemq 问题记录2--预取指令的配置
问题描述:当一个MQ队列里已经有几百条消息,而没有产生新消息的时候,现在先开启一个consumer去从队列里取消息,可以正常取到,但是当想再开一个consumer的时候却一条消息也取不到,只有等有新的消息生成的时候才可以取到。(其中consumer通过receive来获取消息,不过相信事件触发回调的方式也一样)。难道这是activemq的BUG经过分析问题不是这样的。问题原因:原创 2012-03-05 10:48:11 · 1945 阅读 · 0 评论 -
java JNDI 自己指定DNS服务器解析域名IP
目标:1、自己指定域名服务器2、指定多域名服务器3、获取所有IP实现参考:JNDIhttp://docs.oracle.com/javase/1.4.2/docs/guide/jndi/jndi-dns.htmlhttp://mindprod.com/jgloss/dns.html详细参考自己查看实现: /** *原创 2012-06-14 15:39:20 · 7201 阅读 · 6 评论 -
Jtidy解析脚本时候出现StringIndexOutOfBoundsException异常问题
问题描述:最近在做网页结构化信息抽取,用到了JTidy和xslt。当在处理一些包含很多脚本的页面时候,出现了,JTidy去脏失败,提示标题中的异常。最后发现,问题出现在解析脚本的时候因为一些脚本里面不规范的内容,导致不能判断结束造成了上面的异常出现。 解决方法:最初的时候想通过修改JTidy的源码来解决这个问题,但是后来做着发现可行性不高,一个是修改这个源码原创 2013-01-23 12:01:58 · 1140 阅读 · 0 评论 -
VS2010开发环境下制作安装项目
这里简单介绍如何在VS2010开发环境下制作安装项目,其中包括如何设置开机启动、删除注册表及安装后自动运行,加上卸载功能。1、 创建安装项目 打开VS2010,点击菜单上的“文件”>>“新建”>>“项目”,弹出如下对话框。 如上图所示,在“其他项目类型”中选择“安装项目”,根据自己的需求命名,这里命名为“MySetup”,选择保存路径。这样就原创 2013-02-17 12:48:57 · 3291 阅读 · 0 评论 -
英文版VS2010制作中文环境安装包
英文版VS2010制作中文环境安装包.NET資料庫 2010-11-26 16:52:20 阅读289 评论0 字号:大中小 订阅自从VS2010发布以来,一直在用英文版本,接下来就说明用英文版本制作中文环境安装包方法。开发工具:VS 2010 EN 开发语言:Visual C# 先来看下英文版制作中文环境安装包出现的错误:当创建有中文字符的文转载 2013-02-17 16:20:55 · 2886 阅读 · 1 评论 -
关于scanf与printf里的%*d
<br />看如下程序:<br /> <br />#include<stdio.h><br />int main(void)<br />{<br /> int i=1;<br /> printf("##%*d/n",i,i);<br /> i++;<br /> printf("##%*d/n",i,i);<br /> i++;<br /> printf("##%*d/n",i,i);<br /> return 0;<br />}<br /> <br />运行后结果是:<br />##1<br />## 2<转载 2011-02-10 12:49:00 · 6208 阅读 · 1 评论 -
linux书架
<br />工作几年来,一直从事Linux内核驱动方面的开发。从接触Linux到现在,读过不少Linux方面的书籍,现把认为很不错的一部分列出来和大家分享一下。入门类一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这个系统都是必不可少的一个环节。现在的Linux初学者是幸福的,随着Linux桌面环境越来越易用,入门一个新的系统是非常容易的事情。虽然命令行对于提高工作效转载 2011-02-11 10:22:00 · 751 阅读 · 0 评论 -
mysql的三种安装方式:RPM 二进制包和源代码
<br />一、使用RPM包进行安装<br /><br /> 首先可以从安装光盘中或者到mysql的网站上下载对应版本的rpm包如下: <br />MySQL-server-community-5.1.38-0.rhel5.i386.rpm <br />MySQL-client-community-5.1.38-0.rhel5.i386.rpm <br /><br /> 接着我们可以使用rpm命令进行安装: <br />rpm -ivh MySQL-server-community-5.1.38原创 2011-03-01 14:18:00 · 1209 阅读 · 0 评论 -
常用针对WEB服务器的攻击与防护
1.通过获取目标信息进行攻击:通过HTML代码中的注释(好的习惯在代码被服务器执行时要去掉),敏感信息,服务端出错信息和HTTP响应及应用程序的出错信息。可以通过以下两咱方式:第一通过查看源代码来得到,第二可以通过映射链接来得到一些变量名等信息(通过URL行显示来得到的,所以最好的是自己手工查找)。主要注意的信息:HTML注释,应用程序注释,IP地址,电子邮件地址,SQL查询,数据库连接字符串和隐原创 2010-03-15 16:06:00 · 1091 阅读 · 0 评论 -
Web认证方式
Web认证方法探视(1)<br />关键字: web, authentication <br />什么是Web认证<br /><br /> <br />简而言之,web认证就是一个确认对方身份的过程。Web认证最典型的方式是通过用户名和密码。<br /> <br />Web认证有多种方式<br /> <br />A. Http协议内建的认证方法<br /> <br /> 1. Http Basic Authentication (Http基本认证)<br /> <br /> HTTP基本转载 2010-09-02 12:54:00 · 5688 阅读 · 0 评论 -
linux CPU usage calculate
top是linux下查看CPU使用率最常见的命令,功能很强大,使用也很方便。但有一点很不好,就是top的工作状态是全屏的,而且不能返回。如果想在C程序里调用top命令获取CPU利用率的话就很困难了。所以我们需要一简化版的top。top命令的工作原理是读取/proc文件夹下的stat文件来获取CPU使用率。stat文件的前几行为CPU使用信息描述。具体有多少行取决于系统有多少块CPU,但行中的字段都是相同的。第一行以字符串'CPU'开头,为系统总的CPU使用情况。其余行以'CPU'+CPUID开头,用以分别描转载 2010-12-28 14:35:00 · 4303 阅读 · 0 评论 -
VC中获取当前计算机中所有逻辑驱动器的数目和盘符
一般都用这两种方法获取本地磁盘盘符: 1. GetLogicalDriveStrings方法 TCHAR buf[100]; DWORD len = GetLogicalDriveStrings(sizeof(buf)/sizeof(TCHAR),buf); 从名字上就知道GetLogicalDriveStrings是获得盘符的字符形式 这个函数将所有盘符都存在buf中,形式是这样: "C:/D:/E:/" 即盘符之间用N转载 2011-01-03 15:39:00 · 5014 阅读 · 0 评论 -
linux C C++ 字符集转换,UTF-8,GB2312
在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。 <br />一、利用iconv函数族进行编码转换 <br />iconv函数族的头文在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。 <br />一、利用iconv函数族进行编码转换 <br />iconv函数族的头文件是iconv.转载 2011-01-07 16:23:00 · 5100 阅读 · 0 评论 -
Linux 静态库与动态库搜索路径设置
<br />1. 连接和运行时库文件搜索路径到设置<br /><br /> 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用:<br /><br /> (1). 在转载 2011-01-12 17:13:00 · 34785 阅读 · 3 评论 -
error :/usr/lib/libjvm.so: cannot restore segment prot after reloc: Permission denied
<br />use the command:<br /> <br />chcon -t textrel_shlib_t /usr/lib/libjvm.so<br />原创 2011-01-12 17:09:00 · 2163 阅读 · 0 评论 -
判断字符串的编码类型(GBK / UTF8)
GBK:_____________________________________________________________int isgbk(char *s, size_t ns)<br />{<br /> if(ns > 2 && (uint8_t)*s >= 0x81 && (uint8_t)*s <= 0xfe<br /> && (<br /> ((uint8_t)*(s+1) >= 0x80 && (u转载 2011-01-10 09:46:00 · 8823 阅读 · 0 评论 -
iconv_open 中参数的编码类型及返回值
<br />1、参数编码类型<br /><br /> European languages <br /> <br />ASCII, ISO−8859−{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8−R, KOI8−U, KOI8−RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Ma原创 2011-01-10 10:25:00 · 14227 阅读 · 0 评论 -
C++ 把枚举变量的名称,直接当字符串使用方法 字符串化符号 #
<br />例子如下:<br />#include<string>#include<iostream>using namespace std;std::string mystr;enum{ TEXT=1, STRING};int Setstr(const char * val){ mystr = val;}#define AddSet(val) Setstr(#val)int main(){ AddSet(T原创 2011-01-14 15:41:00 · 13051 阅读 · 2 评论 -
堆和栈的区别 (转贴)
堆和栈的区别 (转贴) <br />非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别<br />一、预备知识—程序的内存分配<br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<转载 2011-01-21 11:17:00 · 816 阅读 · 0 评论 -
C++ 中注意,零扩展和符号位扩展
首先,介绍一下两种扩展的定义 符号扩展:当用更多的内存存储某一个有符号数时,由于符号位位于该数的第一位,扩展之后,符号位仍然需要位于第一位,所以,当扩展一个负数的时候需要将扩展的高位全赋为1.对于正数而言,符号扩展和零扩展是一样的,因为符号位就是0. 比如一个用一个8位二进制表示-1,则是10000001 如果把这个书用16位二进制表示时,则为11111111 10000001 高位全都是1,这个叫做符号扩展,主要用于对其操作数。 零扩展就是全补零。不论其符号位是多少,高8位全都补0.能过上面的定义可以看出原创 2011-01-24 10:47:00 · 13336 阅读 · 3 评论 -
VC 界面库 收集
<br />GuiToolkit(开源,类似Visual Studio 2003风格)<br />http://www.beyondata.com/default.htm<br />GardenUI(免费,界面效果挺好的,XML,代码 界面 分离)<br />http://www.gardenui.com/<br />CJLib(开源,免费,UNICODE编码,是xtreme toolkit的前生,但xtreme toolkit收费了)<br />http://www.codejock.com/<br />转载 2011-01-24 11:14:00 · 842 阅读 · 0 评论 -
Linux下Ping的实现代码
#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>#include <netdb.h>#define PACKET_SIZE 4096#define ERROR 0#define SUCCESS 1// 效验算法unsigned short原创 2011-01-26 14:57:00 · 5310 阅读 · 5 评论 -
windows下ping实现
<br />// Module Name: Ping.c//// Description:// This sample illustrates how an ICMP ping app can be written// using the SOCK_RAW socket type and IPPROTO_ICMP protocol.// By creating a raw socket, the underlying layer does not change//原创 2011-01-26 15:00:00 · 2553 阅读 · 0 评论 -
linux中c语言实现的ping程序
大部分人用ping命令只是作为查看另一个系统的网络连接是否正常的一种简单方法。在这篇文章中,作者将介绍如何用C语言编写一个模拟ping命令功能的程序.ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。例如,在Linux终端上执行ping localhost命令将会看到以下结果: PING localhost.转载 2011-01-26 14:49:00 · 1802 阅读 · 1 评论 -
solrcloud使用问题记录
Solr Ping query caused exception: undefined field text如果发现这个异常,修改solrconfig.xml: solrpingquery standard all text 这个配置中的(text)text域为自己定义的域,如果没有这个添加一个在s原创 2013-06-05 15:14:15 · 4361 阅读 · 0 评论