技术资料
zhangyulin54321
这个作者很懒,什么都没留下…
展开
-
用telnet测试pop3接受邮件
======================开始POP3收信操作==========================[crazywill@localhost crazywill]$ telnet pop.163.com 110 #telnet登录110端口Trying 202.108.5.104...Connected to pop.163.com原创 2012-05-28 21:28:44 · 12742 阅读 · 1 评论 -
用telnet发送邮件到smtp服务器的测试
220 163.com Anti-spam GT for Coremail System (163com[20111010])helo localhost250 OKauth login334 dXNlcm5hbWU6TWJNMk1EUTNOUQ==334 UGFzc3dvcmQ6Y2FzRHNkZXpNdw==550 用户被锁定auth login334原创 2012-05-24 15:19:12 · 6210 阅读 · 2 评论 -
base64编码原理简介
为什么叫Base64编码?该编码使用64个明文来编码任意的二进制文件,它里面只使用了A-Z,a-z,0-9,+,/这64个字符。编码里面还有“=”号啊,不过等号不属于编码字符,而是填充字符。 为什么发明这么个编码?这个编码的原理是很简单的,“破解”也很容易,电子邮件刚出来的时候,只传递英文字符,这没有问题,但是后来,中国人,日本人都要发email,这样问题就来了,因为这些原创 2012-05-25 16:43:41 · 2042 阅读 · 0 评论 -
内存分配方式
内存分配方式,堆区,栈区1.内存分配方式 内存分配方式有三种 [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是翻译 2012-05-25 15:26:05 · 735 阅读 · 1 评论 -
static 和 const的解释(用 const 限定类的成员函数)
static 和 const的解释(用 const 限定类的成员函数) static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。static 的两大作用:一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储转载 2012-05-25 15:57:09 · 608 阅读 · 0 评论 -
C++类中的访问权限问题
C++类中的访问权限问题---public/protected/private 2012-05-31 19:48:21| 分类:c++基础的东东 | 标签:|字号大中小订阅 C++中public,protected,private访问小结第一:private,public,protected方法的访问范围.(public继承下)pri转载 2012-06-19 20:47:01 · 8930 阅读 · 1 评论 -
c#委托到底是什么
我们可以将方法作为方法的参数,而委托就是标识参数的类型。听起来有点绕口,假如你学过c++,其实,我个人理解委托其实和函数指针一样,只不过c#摒弃了指针的概念,但是又要这种机制,怎么办?只好来换一种提法:委托。(额外的话:编程讲究的是思想,技术永远都在不断地更新着,盲目追求技术,会让你觉得自己编程技术很杂,很乱,永远只能给别人打下手) 先来看下面这两个最简单的方法,它们不过是在屏幕上输出一句原创 2012-06-21 16:18:09 · 688 阅读 · 0 评论 -
.NET构建线程池框架
通常,多线程编程与基于用户界面的应用联系在一起,它们需要在不影响终 端用户的情况下,执行一些耗时的操作。取出任何一本参考书,打开有关线程这一章:你能找到一个能在你的用户界面中并行执行数学运算的多线程示例吗?多线程编程技术使基于用户界面的应用更完美。实际上, Microsoft .NET框架支持在任何语言编写的窗口下应用多线程编程技术,允许开发人员设计非常丰富的界面,提供给终端用户一个更好的体验翻译 2012-06-21 14:58:23 · 2818 阅读 · 1 评论 -
多核编程中CreateEvent ()中人工重置和自动重置事件区别
在多核编程中,要创建内核对象可以有两个选择,即可以将内核对象创建为自动重置方式,也可以创建为人工重置方式,人工重置方式的时候,一旦内核对象得到通知,所有等待该内核对象的线程都变为可调度线程,等待CPU分配时间,如果程序没有主动将该内核置为未通知状态,则内核对象将一直处于通知状态,所有等待该内核对象的线程也将一直处于可调度状态。若要将该内核对象置为未通知状态,需要程序主动去做这件事,即主动将内核原创 2012-06-21 09:31:31 · 3955 阅读 · 1 评论 -
模拟的QQ可以在内网通信,为什么不能在外网通信,这需要NAT穿透内网与外网通信
发送消息的时候是UDP打洞,登陆的时候使用HTTP~因为登陆服务器其实就是一个HTTP服务器,只不过不是常用的那些,那个服务器是腾讯自行开发的!!!一、登录QQ客户端在局域网内,当你打开QQ登录到QQ服务器时,通过外网,你的客户端与QQ服务器建立了一个长连接。你可以用netstat -bn 看到此连接的状态是 establish此时,在QQ服务器那面看到的连接翻译 2012-06-25 11:02:41 · 2843 阅读 · 3 评论 -
#ifdef __cplusplus extern "C" { #endif”的定义的含义
看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ programs only. 意思是说,如果是C++程序,就使用extern "C"{而这个东东,是指在下面的函数翻译 2012-06-27 14:08:33 · 3529 阅读 · 0 评论 -
Windows 系统命令行程序一览:
Windows 系统命令行程序一览:在网上看到这个东东,觉得对自己很有用,于是转贴过来了。winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构wupdmgr--------windows更新程序 wscript--------windows脚本宿主设置 write----------写字板 winmsd---翻译 2012-06-27 17:07:18 · 792 阅读 · 0 评论 -
返回函数局部变量的问题
#include char *returnStr() { char *p="hello world!"; return p; } int main() { char *str; str=returnStr(); printf("%s\n", str); return 0; }原创 2012-06-27 14:58:34 · 680 阅读 · 0 评论 -
数组指针和指针数组的区别
随笔- 3 文章- 0 评论- 0 数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数翻译 2012-07-10 16:09:49 · 532 阅读 · 0 评论 -
用typedef定义函数指针的好处
typedef可以用于定义函数指针类型:【语法】typedef (*)(参数表)typedef (::*)(参数表)【用途】1、可以用来定义该函数类型的函数指针,就不用每次使用函数指针都要写一次函数原型了;2、有了类型名,就可以使用在容器里面,譬如map,用于实现灵活的函数调用。【示例】例1:typedef void (*PF)(int x);void转载 2012-07-12 15:23:51 · 1274 阅读 · 0 评论 -
c/c++将结构体读入到文件中,然后读出
#include#include#includetypedef struct { char name[20]; char num[20]; int age;}Stu,*pStu;void write(){ FILE *file; Stu Stu1; if((file=fopen("C:\\123","wb"))==NULL) { pr原创 2012-07-13 15:27:04 · 3345 阅读 · 0 评论 -
c/c++中怎样将结构体成员数据存储到文件中,并读出来
#include#include#include struct student{ char name[20]; int age; char num[20];}stu;void write(){ FILE *file; if((file=fopen("C:\\123","wb"))==NULL) { printf("open file fai原创 2012-07-13 14:40:15 · 11388 阅读 · 2 评论 -
c/c++中文件的操作大全,可以了解向文件读取一个结构体
文件的基本概念 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。 普通文件是指驻留在磁盘或其它外部介质上的翻译 2012-07-03 15:01:26 · 8902 阅读 · 1 评论 -
c++写修改Windows服务类型的代码
[cpp] view plaincopyprint?VOID DoSvcStartType() { SC_HANDLE schSCManager; SC_HANDLE schService; // Get a handle to the SCM database. schSCManager = OpenSCManager( NULL,转载 2012-07-17 19:19:40 · 973 阅读 · 0 评论 -
FILE结构体,里面的成员的意思
struct _iobuf { char *_ptr; //文件输入的下一个位置 int _cnt; //当前缓冲区的相对位置 char *_base; //指基础位置(应该是文件的其始位置)原创 2012-07-25 10:39:36 · 2106 阅读 · 0 评论 -
彻底搞清C/C++中一维数组,二维数组,指针,数组指针和指针数组以及指向指针的指针,行地址和列地址之间的关系
如果配合http://wenku.baidu.com/view/acf838ef856a561252d36fe3.html去看的话下面的内容比较容易理解从一道题目说起。 #include using namespace std;int main(){ int ia[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; typedef int int_原创 2012-08-08 15:07:34 · 15799 阅读 · 5 评论 -
error C2099: initializer is not a constant 或者error C2099:初始值设定项不是常量
先看一道题:#includeconst int a=15;const int b=a+15;void main(){ printf("%d\n",b);}很有意思哟:在.c文件中报的是和你一样的,初始值设置不是常量,但在.cpp中可以,结果输出30改成这样就行#includevoid main(){ const int a=15;原创 2012-08-10 17:26:40 · 7456 阅读 · 0 评论 -
函数指针,用typedef定义函数指针的好处,输出各中基本类型如int,char,float,double型中最大值
先看看没有定义函数指针的这道题,目的都是输出数组中最大值:#include#include#includeusing namespace std;void * intMax(void * arg,int nCount){ int * agu=(int *)arg; static int Max=*agu; for(int i=1;i if(Max原创 2012-08-10 16:51:46 · 1630 阅读 · 0 评论 -
STL中标准的迭代器接口
template struct iterator { typedef C iterator_category; typedef T value_type; typedef Dist distance_type; };The template class serves as a base type for all iterators. It defines原创 2012-08-16 15:15:07 · 1121 阅读 · 0 评论 -
为什么在函数的声明后面还有一个 const? 如:void fun() const;
首先像这样的声明void fun() const;必须是类的成员函数,不能是单独的类外部函数其次,如果为类成员函数,他表示(1)不能修改成员变量; (2)不能调用非const函数; (3)其他const函数可以调用它;(其他非const函数当然也可以调用它) (4)只能从const对象(或引用用指针)上调用,比如:const A a; a.f(); 补充:原创 2012-08-17 13:55:25 · 5639 阅读 · 1 评论 -
彻底搞清c/c++中的几个指针概念:悬垂指针和智能指针以及哑指针和野指针
先看看下面两段代码运行结果:#include//#include using namespace std;int *p=NULL;void fun(){int i=10;p=&i;}void main(){//fun(); int i=10;p=&i;//cout//Sleep(1000);//coutcoutcout}结果:原创 2012-08-16 13:57:14 · 5632 阅读 · 0 评论 -
高内聚低耦合
基本解释 高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。面向对象设计原则追求:模块之间的低耦合,模块内部组件的高内聚。高内聚 内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。 所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也原创 2012-08-16 14:56:29 · 6184 阅读 · 0 评论 -
Static关键字的作用
一 普通的static关键字1. 静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:1.1 该变量在全局数据区分配内存; (1)未经初始化的静态全局变量会被程序自动初始化为0( 在函数体内声明的自动变量的值是随机的,除非它被显式初始化,而在函数体外被声明的自动变量也会被初始化为0);原创 2012-10-10 11:11:59 · 4809 阅读 · 0 评论 -
东芝移动硬盘:autorun.inf
[AutoRun]open=Software Offer.exe原创 2012-10-11 13:22:16 · 1647 阅读 · 0 评论 -
在虚拟机下安装Linux RedHat(红帽)操作系统的图解步骤
http://www.doc88.com/p-506543241918.html原创 2012-10-15 14:30:32 · 1008 阅读 · 0 评论 -
Linux下设置环境变量的三种方法
http://foxxiao.iteye.com/blog/896874原创 2012-10-16 15:49:34 · 450 阅读 · 0 评论 -
在windows下和Linux下安装jdk的详细设置
http://www.sudu.cn/info/html/edu/20070101/287629.htmlhttp://www.doc88.com/p-497273241432.html原创 2012-10-17 14:59:27 · 411 阅读 · 0 评论 -
Linux下怎样安装JDK图示说明
一般而言Linux下都已经安装了JDK,打开终端:输入 java - version就知道,是否安装了。一般在/usr/bin/java路径下http://www.doc88.com/p-497273241432.html设置环境变量/etc/profile打开后,在文档最下方加上以下环境变量配置代码:export JAVA_HOME=/usr/java/javaj原创 2012-10-17 14:06:44 · 714 阅读 · 0 评论 -
新手(菜鸟)怎样在Linux下怎样安装Kdevelop详细解说
kdevelop-4.0.2.tar.bz2步骤3:配置和安装kdeplatform。将/root/src/kdeplatform-1.3.1下的cmake文件夹中CMakeLists.txt文件的赋值到/root/src/kdeplatform-1.3.1/kdeplatform/里,这样是要后面的cmake ../能找到CMakeLists.txt文件具体按照c原创 2012-10-18 16:07:07 · 8686 阅读 · 0 评论 -
Linux下各种软件版本的安装方法如以.rpm,.sh,.tar,.tar.bz2等等结尾的文件的安装
http://wenku.baidu.com/view/0a365ff3f61fb7360b4c65f2.html补充一点:.sh结尾的文件:su -c 'sh netbeans-6.0ml-linux.sh' 就可出现类似windows下的安装界面http://wenku.baidu.com/view/1635f2eb856a561252d36f11.html原创 2012-10-19 10:29:46 · 1227 阅读 · 0 评论 -
菜鸟如何在Linux下安装Netbeans版本是以.sh为扩展名如 netbeans-6.5-ml-linux.sh
如何安装Netbeans: 下载了netbeans-6.5-ml-linux.sh这个文件后(不论选什么语言都是那一个多语言版本的) 在终端下载的目录下输入1. su -c 'sh netbeans-6.5-ml-linux.sh' //注意sh不能少 之后会出现图形安装界面,下面的和在windows下安装是一样的了,如果原创 2012-10-19 10:15:48 · 2189 阅读 · 0 评论 -
RedHat 红帽的iso下载版本
http://rhel.ieesee.net/uingei/rhel-server-5.4-i386-dvd.isoREDHAT Linux 8.0下载 著名的红帽子 ftp://ftp.linuxforum.net/ISO/Redhat8.0/psyche-i386-disc1.iso ftp://ftp.linuxforum.net/ISO/Redhat8.0/psyche-i原创 2012-10-19 11:00:42 · 7384 阅读 · 1 评论 -
C/C++经典笔试题
1. 以下三条输出语句分别输出什么?char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout cout cout 答:分转载 2012-10-19 16:07:03 · 762 阅读 · 0 评论 -
IPE中eng.bat中的修改
@echo offREM $URL: https://emea-swi-ipesvn.emea.tibco.com/svn/iProcessSuite/trunk/eng.bat $REM $Id: eng.bat 83578 2012-04-09 01:58:06Z jinzhang $set ProgramFiles=C:\Program Filescall "%Pro原创 2012-10-15 10:30:22 · 1873 阅读 · 0 评论 -
有关ActiveX控件中的DataGrid或ADO Data控件在vc++6.0和VS 版本中的使用
系统环境:Windows 7 + VC6.0 + VS2008当在VC++6.0中"Project"-->"Add to Project"-->"Componets and Controls"-->"Register ActiveX Controls", 找到Microsoft ADO Data Control 6.0 (SP6) (OLEDB), 进行插入时候, 出现以下消息框。--翻译 2012-10-30 16:54:40 · 7126 阅读 · 1 评论