自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 开发网络程序验证效率和稳定性时需要注意的几个问题

1.服务器网卡的速率: 例如有些网卡的传输速率仅有100Mbps 。2.网络线路的速率 。3.操作系统的网络参数设置 。4.操作系统的bug, 注意 更新操作系统的版本、补丁 。5.IP地址冲突 引起的网络不稳定问题 。6.电磁干扰 。7.电源不稳导致服务器重启 。

2016-09-29 15:29:52 624

转载 C++ 中 虚拟继承 的概念

C++中虚拟继承的概念为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚基类。

2016-09-29 15:10:33 1844

转载 C语言的整型溢出问题

整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视。整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一个buffer overread的事件。在这里写下这篇文章,希望大家都了解一下整型溢出,编译器的行为,以及如何防范,以写出更安全的代码。什么是整型溢出C语言的整型问题相信大家并不陌生了。对于整

2016-09-29 11:23:27 27915 1

转载 Linux环境下段错误(Segmentation fault)的产生原因及调试方法小结

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,

2013-05-18 10:11:48 2641

转载 MS SQL Server 2005数据导入SQL语句

在一个项目中,需要将远程的MS SQL 2005的数据导入到本地。但是,由于用户的权限不够,不能够通过备份/恢复的方式来完成。虽然能够通过SQL Server Management Studio提供的数据导入/导出功能来完成,但是与实际的需求还有差别,不能解决的问题如下:当本地数据库表结构存在时,不能够导入自增列的数据,导入后本地的数据自增列进行了重构 当本地数据库表结构不存在时,在导入的

2013-04-27 16:16:44 993

转载 负载均衡技术讨论

负载均衡是个很广泛的概念,可以是针对数据库服务器,也可以是针对应用服务器,也可能是针对服务器之间的负载均衡,也可能是针对用户接入时的负载均衡。     这里说的主要是TCP/IP网络中的应用服务器对用户接入的负载均衡。      接入负载均衡的目的,就是将不同的用户平均地接入到不同的应用服务器上。      接入负载均衡方案在设计时,需要考虑的因素比较多。            0

2013-04-22 12:04:16 789

转载 修改linux的最大文件句柄数限制 (Too many open files)

linux 打开文件句柄时可能出现“Too many open files”的提示,可以修改linux的最大文件句柄数限制:1)ulimit -n 65535      在当前session有效,用户退出或者系统重新后恢复默认值2)修改profile文件:在profile文件中添加:ulimit -n 65535     只对当个用户有效3)修改文件:/etc/security

2013-04-17 10:44:47 4482

转载 浅谈JavaScript的语言特性

Javascript语言脚本网络编程目录(?)[-]前言语言特性函数表达式json原型作用域链函数自由变量最后前言在JavaScript中,作用域、上下文、闭包、函数等算是精华中的精华了。对于初级JSer来说,是进阶必备。对于前端攻城师来说,只有静下心来,理解了这些精华,才能写出优雅的代码。本文旨在总结容易

2013-03-29 10:15:11 728

转载 setsockopt 设置socket

1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经

2013-03-27 11:21:30 749

转载 Linux网络编程

(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端        网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端        在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。比如我们使用ftp程序从另外一        个地方获取文件的

2013-03-22 12:03:36 1103

转载 js小技巧 ,将彻底屏蔽鼠标右键,可用于Table ,取消选取、防止复制,IE地址栏前换成自己的图标

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键no 可用于Table 2. 取消选取、防止复制3. onpaste="return false" 不准粘贴4. oncopy="return false;" oncut="return false;" 防止复制5. IE地址栏前换成自己的图标6. 可

2013-03-14 12:42:45 1561

转载 protobuf在网络编程中的应用思考

protobuf简介protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持java、c++、python等语言环境。通过将这些类包含在项目中,可以

2013-03-07 14:51:24 823

转载 C++ 类成员初始化的两种方法

1、关于构造函数1)用构造函数确保初始化对于一个空类[cpp] view plaincopyprint?class Empty { };  编译器会自动声明4个默认函数:构造函数,拷贝构造函数,赋值函数,析构函数(当然,如果不想使用自动生成的函数,就应该明确拒绝),这些生成的函数都是public且inline。构造函数对数据成员进行初始化,使用未初始化值

2012-11-28 15:48:38 3834

原创 Ubuntu 图形界面无法登录 ,反复提示输入密码

现象:图形界面登录输入密码后,反复提示输入密码,未提示错误。可以用命令行登录,不过有 目录不存在 的相关错误,而且ls cp 相关命令均无法使用。 原因:此前修改过环境变量,由于/etc/environment系统环境变量设置错误引起的。 解决方法:使用root用户登录命令行后:进入cp 命令所在目录:cd /bin 备份/etc/environment:

2012-11-15 14:31:45 2622

原创 Ubuntu 登录图形界面时报错

提示:usr/lib/libgconf2-4/gconf-sanity-check-2 exited with error status 256 ,          以及:The configuration defaults for GNOME power Manager have not been installed correctly  。 解决办法:图形界面登录选择用户时,按

2012-11-15 13:36:54 1074

原创 使用NTFS-3G在redhat 系统下挂载NTFS格式硬盘分区

linux 内核 2.6.0 以上才可以用 NTFS-3G。使用前请先用uname -a检查的linux内核版本。使用echo $LANG 查看当前的语言。 两步安装:1.安装fuse,地址:http://fuse.sourceforge.net/这里下载了fuse-2.9.2.tar.gz下载解压后,用 超级用户 终端进入fuse的目录,然后输入命令# ./confi

2012-11-05 14:18:05 4142

原创 禁止oracle本地登录 及 解决 ORA-03135连接失去联系

oracle 本地登录的方式登录oracle服务端:sqlplus "/as sysdba",不需要用户名密码即可登录。禁用方法:1.linux下转到目录$ORACLE_HOME/network/admin下,cd $ORACLE_HOME/network/adminvi sqlnet.ora在文件sqlnet.ora中,增加一行即可:sqlnet.authentica

2012-07-13 11:35:18 45146 2

原创 Linux下文件被删除后,磁盘空间未得到释放

发现一个在Linux下文件被删除后,磁盘空间未得到释放的问题,kill 占用被删除文件的进程即可。

2012-04-07 10:25:07 1468

原创 JSP+Struts2.1.6 乱码问题的解决

使用Struts2.1.6进行开发。在Action中setAttribute("menus", menus)设置属性值,JSP中使用 var menus = 获取属性值,当menus中含有中文时,JSP中获取的值显示为乱码。已尝试以下方法均无法获取正确的值:1.在Action中使用HttpServletRequest对象setCharacterEncoding("UTF-8") 方法  。

2012-02-23 11:52:59 958

转载 C++著名程序库的比较和学习经验

C++著名程序库的比较和学习经验1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML 6、C++各大有名库的介绍——科学计算 7、C++各大有名库的介绍——游戏开发 8、C++各大有名库的介绍——线程 9

2012-01-05 10:24:21 644

转载 C++中static的全部用法

C++中static的全部用法要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用static修饰的变量,都是auto的,因为它是默认的,就象short和long总是默认为int一样;我们通常声明一个变量:int a;string s;其实就是:auto int a;auto string s;

2011-11-16 12:00:53 415

转载 应用 Valgrind 发现 Linux 程序的内存问题

Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所

2011-11-04 16:26:37 1218

转载 解决valgrind(版本3.6.1)(: Fatal error at startup: a function redirection

原因是glibc没有debuginfo,安装glibc的debug info:sudo apt-get install libc6-dbg测试ls -l 命令是否存在内存泄露:valgrind --tool=memcheck --leak-check=yes  ls -l

2011-11-04 16:08:40 5527

原创 在Linux下安装多个版本的gcc

1.查看当前linux版本   内核版本:cat /proc/version   或者:uname -a2.查看gcc的版本    gcc -v   或者:    gcc --version    或者:查看当前安装的gcc的各个版本:    ls /usr/bin/gcc* -l3.安装多个版本的gcc    例如当前linux版本为ubuntu10.4,已安装gcc 4.4.3,现在要安装gcc 4.0.0。    从http://gcc.gnu.org/     http://gcc.igor.onl

2011-03-15 20:36:00 21859

原创 Boost 日期库的使用

1.Boost的编译程序bjam 和 Boost库  http://www.boost.org  下载boost-jam-3.1.18.tgz 以及 boost_1_45_0.tar.gz  文档参照“http://www.boost.org/doc/libs/1_45_0/more/getting_started/unix-variants.html#easy-build-and-i

2011-03-14 21:26:00 1882

转载 ubuntu查看进程端口号及运行的程序

<br />ubuntu查看进程端口号及运行的程序:<br />使用su命令使用root用户登录:su,输入root用户的密码<br /> <br />查看进程端口号及运行的程序:netstat -atunp<br /> <br />根据端口号来查看进程号:lsof -i:1521<br /> <br /> <br /> <br /> <br /> 

2011-02-09 17:02:00 11066

原创 Linux下更改oracle客户端字符集和服务端字符集

Linux下更改oracle客户端字符集和服务端字符集1.Linux下更改oracle客户端字符集,即设置环境变量“NLS_LANG“的值 查看客户端字符集,在终端下执行:echo$NLS_LANG sudogedit /etc/environment 在environment文件中增加以下内容:NLS_LANG="SIMPLIFIEDCHINESE_CHINA.ZHS16GBK"exportNLS_LANG 重新启动操作系统即可。2.修改oracle服务

2011-01-27 14:16:00 14343

原创 在vs2010中使用外部程序测试COM自动化组件

<br />今天将一个Com自动化项目从VC6.0转换为VS2010重新编译后,启动调试,出现“无法启动程序:......”的错误。<br />解决方法:菜单 项目/属性:左边的树形菜单中选择:配置属性/调试,在右边的下拉框中选择“远程Windows调试器”,在“远程命令”中输入要调用的外部程序的完整路径即可。<br /> 

2011-01-20 14:46:00 3045 1

原创 Ubuntu10.04 下使用code Blocks 进行oci 程序开发

Ubuntu10.04 下使用code Blocks 进行oci 程序开发1.   安装linux版本的ORACLE。     参照自己整理的文档《Ubuntu10.04 安装Oracle10G》。2.   下载linux版本oracle的客户端       http://www.oracle.com/technetwork/topics/linuxsoft-082809.htmloci的库文件:instantclient-basic-linux32-10.2.0.3-20061115.zip oci的头文

2011-01-16 16:08:00 1296

转载 oracle ora-01033:oracle initialization or shutdown in progress问题解决

一、首先:问题的产生原因,出现这个错误是因为我将oracle/oradata/oradb下的一个文件误删除掉后出现的。 二、现象:SQL*Plus无法连接,显示以下错误: ORA-01033: ORACLE initialization or shutdown in progress ,Enterprise Manager Console中也是同样的错误。 三、分析:应该是Oracle在启动后,用户登录时是要将方案中原有配置信息装载进入,装载过程中遇到原有文件指定的位置上没有找到,所以就报出

2011-01-15 15:48:00 692

原创 设置Code::Blocks ,使之可以启动多个实例

<br />菜单:settings / environment : general settings 选项卡: <br />去掉“ allow only one running instance  ”, 去掉 “ use an already running instanct  ”  关闭 code blocks 后重新启动,即可启动多个实例。

2011-01-12 15:31:00 3628 4

原创 ubuntu共享文件夹时发生错误“执行子进程“testparm”失败”

<br />执行:sudo apt-get install samba-common-bin  即可。<br />

2011-01-06 16:29:00 1875 1

转载 ubuntu 安装code blocks全记录

ubuntu 安装code blocks全记录(一)安装步骤:1.先把编译环境,C库、C++库和Boost库装好,如下:sudo apt-get install build-essential* 有可能安装 build-essential 后gdb就已经安装过了   sudo apt-get install gdb2. 在 Ubuntu 软件中心 中安装 Code::Blocks IDE3. 安装 Code::Blocks 的调试组件 Valgrind 用来探测内存泄露的:sudo apt-ge

2011-01-06 16:21:00 2180

原创 连接不到cn.archive.ubuntu.com时,重新配置源。

sudo gedit /etc/apt/sources.list

2011-01-06 16:16:00 3448 1

转载 用gSOAP开发Web Service程序

gSOAP是一个绑定SOAP/XML到C/C++语言的工具,使用它可以简单快速地开发出SOAP/XML的服务器端和客户端。由于gSOAP具有相当不错的兼容性,通过gSOAP,我们就可以调用由Java, .Net, Delhpi, PHP等语言开发的SOAP服务,或者向它们提供SOAP服务。gSOAP是一个绑定SOAP/XML到C/C++语言的工具,使用它可以简单快速地开发出SOAP/XML的服务器端和客户端。由于 gSOAP具 有相当不错的兼容性,通过gSOAP,我们就可以调用由Java, .N

2011-01-06 15:46:00 1366

转载 Code::Blocks 编译参数的相关设置

Code::Blocks 编译参数的相关设置*****************************************************code::blocks设置cflags参数Settings==> Compilerand debugger==> Compilersettings==> otheroptions填写所需的库名,比如:`pkg-config --cflags gstreamer-0.10``pkg-config --cflags gtk+-2.

2011-01-06 15:37:00 2768

转载 error LNK2005: xxx already defined in libcmt.lib(xxx.obj) MSVCRT.lib

这个错误是微软设计错误,因此如果遇到这个错误,我们只能躲过这个链接错误。具体的办法就是将那个提示出错的库放到另外一个库的前面。另外选择不同的C函数库,可能会引起这个错误。MS, C有两种C函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。另外一种是支持多线程的:msvcrt.lib。如果一个工程里,这两种函数库混合使用,可能会引起这个错误。因此建议使用支持多线程的msvcrt.lib。需要注意的是,当使用其他的库的时候最容易产生这种错误,例如boost和wxWindow使用/MD来编译的,也就是使

2010-12-09 09:40:00 1756

空空如也

空空如也

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

TA关注的人

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