自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

flyear_cn

记录我的脚印。

  • 博客(42)
  • 收藏
  • 关注

原创 Linux编译模块问题

我的Linux版本是Redhat enterprise 2.6内核    以为主要参考    最简单的模块hello.c    /hello.c    #include    #include    MODULE_LICENSE("Dual BSD/GPL");    static int hello_init(void)    {

2014-01-29 19:23:34 1000

原创 linux 模块编译步骤

本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模块,查看系统消息的一些知识;声明:

2014-01-29 19:22:54 561

原创 编译模块--Makefile

1.最基本的一个Makefile文件:# hello.o为你需要编译的源代码,若有多个源代码应使用方法二的方式obj-m:=hello.o#方法二obj-m:=module.omodule-objs:=file1.o file2.o将上面的内容保存为Makefile,在命令行输入“make -C /lib/modules/$(shell uname -r)/buil

2014-01-29 19:21:55 710

原创 Socket/TCP粘包、多包和少包, 断包

http://blog.csdn.net/pi9nc/article/details/17165171#  Socket/TCP粘包、多包和少包, 断包分类: java2012-03-12 00:35 4492人阅读 评论(3) 收藏 举报minatcpexceptionsocketimage算法目录(?)[+]

2014-01-29 14:11:17 1005

原创 关于Tcp封包

很多朋友已经对此作了不少研究,也花费不少心血编写了实现代码和blog文档。当然也充斥着一些各式的评论,自己看了一下,总结一些心得。首先我们学习一下这些朋友的心得,他们是:http://blog.csdn.net/stamhe/article/details/4569530http://www.cppblog.com/tx7do/archive/2011/05/04/145699.htm

2014-01-29 14:07:29 533

原创 Socket/TCP粘包、多包和少包, 断包

为什么TCP 会粘包 前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整。为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? 带者问题,我们先分析一下问题。提到通信, 我们面临都通信协议,数据协议的选择。 通信协议我们可选择TCP/UDP:TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。收发

2014-01-29 14:05:10 634

原创 Socket粘包问题

这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接     Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接     Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此

2014-01-29 14:03:11 573

原创 Socket粘包问题

这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下:一两个简单概念长连接与短连接:1.长连接    Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接    Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式

2014-01-29 12:21:05 712

原创 处理粘包和半包有关问题的socket分包Java实现

-处理粘包和半包问题的socket分包Java实现只知道原理,代码实现还不知道怎么实现?请高手指点,谢谢!高分馈赠!------解决方案--------------------一般在socket处理大数据量传输的时候会产生粘包和半包问题,有的时候tcp为了提高效率会缓冲N个包后再一起发出去,这个与缓存和网络有关系在java中对于这样的优化,lz可以用非阻塞的流操作,

2014-01-29 12:20:22 4512

原创 同步、异步、阻塞和非阻塞的概念

在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方式。这些方式彼此概念并不好理解。下面是我对这些术语的理解。同步所 谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。不过一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或需要一定时间完成的任务。最常见的例子就是 Sen

2014-01-28 23:11:23 435

原创 同步与异步--阻塞与非阻塞型I/O(非常好,转贴)

http://blog.163.com/fanning_7213/blog/static/249650520113855927491/同步阻塞IO在这个模型中,应用程序(application)为了执行这个read操作,会调用相应的一个system call,将系统控制权交给kernel,然后就进行等待(这其实就是被阻塞了)。kernel开始执行这个syst

2014-01-28 23:09:36 575

原创 IO - 同步,异步,阻塞,非阻塞

http://blog.csdn.net/historyasamirror/article/details/4270633本文在理论上存在重大错误,个人对所有受到此文误导的朋友表示道歉。新做一篇“IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇) ”,希望能够得到谅解。  同步(synchronous) IO和异步(asynchronous) IO,

2014-01-28 23:08:38 471

原创 socket阻塞和非阻塞的区别

简单点说:阻塞就是干不完不准回来,   非组赛就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你C

2014-01-28 23:07:47 544

原创 非阻塞SOCKET

在互联网相当普及的今天,在互联网上聊天对很多“网虫”来说已经是家常便饭了。聊天室程序可以说是网上最简单的多点通信程序。聊天室的实现方法有很多,但都是利用所谓的“多用户空间”来对信息进行交换,具有典型的多路I/O的架构。一个简单的聊天室, 从程序员的观点来看就是在多个I/O端点之间实现多对多的通信。其架构如图一所示。这样的实现在用户的眼里就是聊天室内任何一个人输入一段字符之后,其他用户都可以得到这一

2014-01-28 23:07:20 547

原创 阻塞模式下的send、recv、close

对于send函数:     send函数只负责将数据提交给协议层。    当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲区的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;     如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的数据;     如果是就等待协议把数据发送完,如

2014-01-28 23:06:17 721

原创 同步/异步与阻塞/非阻塞的区别

我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的

2014-01-28 23:05:44 506

原创 Socket的阻塞模式和非阻塞模式

来源:http://blog.csdn.net/VCSockets/http://www.cppblog.com/converse/archive/2009/05/13/82879.html阻塞模式  Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反

2014-01-28 23:05:11 652

原创 IO中同步、异步与阻塞、非阻塞的区别

一、同步与异步同步/异步, 它们是消息的通知机制1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数

2014-01-28 23:02:52 614

原创 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回值 2、阻塞模式与非阻塞模式下write的返回值各代表什么意思?有没有区别?阻塞与非阻塞write返回值没有区分,都是 0发送数据大小,特别:返回值 3、阻塞模式下read返回值 非

2014-01-28 23:02:12 672

转载 从缓冲上看阻塞与非阻塞socket在发送接收上的区别

最近在网络上看到一些帖子以及回复,同时又搜索了一些网络上关于阻塞非阻塞区别的描述,发现很多人在描述两者的发送接收时操作返回以及缓冲区处理的区别时有不同程度的误解。所以我想写一篇文章来阐述我的理解,并作为记录方便查阅,如有转载,注明作者(jwybobo2007)以及出处即可。  首先socket在默认情况下是阻塞状态的(未指异步操作以及其它一些特殊用途下,直接默认为非阻塞),这就使得发送以及

2014-01-28 23:01:45 562

原创 recv send 阻塞和非阻塞

int send( SOCKET s, const char FAR *buf, int len, int flags );不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接字描述符; 第二个参数指明一个存

2014-01-28 23:01:03 500

原创 Linux获取网页源码的几种方法 linux爬虫程序

第一个为利用linux下的工具来获取网页源码,我用的是Wget,也可以使用Curl,curl的话更加的灵活,可以设置很多参数 //通过Wget来获取网页 string GetHtmlByWget(string url) { //获取待下载网页文件名 string fileName = url.substr((int)url.find_last_of("/

2014-01-28 16:47:44 1082

原创 session自动退出登录解决方法

先说说现象:今天登录9街后台的时候,很奇怪一登录就退出,后台代码一直没有改动过,查了一下原因,找到了根本原因,后面会贴上找到的相关文档。解决办法就是在产生的session的页面session_star();加上以下三句代码:ini_set("session.gc_divisor", 1); ini_set("session.gc_maxlifetime", 5); ini_set("s

2014-01-28 16:44:55 5422

原创 实现自动登录Cookie

有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机)。实现这个功能关键就是服务端要识别客户的身份。而用Cookie是最简单的身从验证。如果用户第一次登录,可以将用户名作为Cookie写到本地,代码如下:Cookie cookie = new Cookie("user", user);coo

2014-01-28 16:39:58 589

原创 选择Session还是Cookie

Cookie与Session都可以进行会话跟踪,但是实现的原理不太一样。一般情况下二者均可以满足需求,但有时候不可以使用Cookie,有时候不可以使用Session。下面通过比较说明二者的特点以及适用的场合。 1 . 从存取方式上比较 Cookie中只能保存ASCII字符串,如果需要存取Unicode字符或者二进制数据,需要进行UTF-8,GBK或者BASE64等方式的编码。Coo

2014-01-28 16:39:25 555

原创 Cookie/Session机制详解

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1  Cookie机制

2014-01-28 16:38:17 488

原创 Cookie和Session专题

一、cookie机制和session机制的区别*************************************************************************************具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存

2014-01-28 16:37:32 455

原创 通过PID获取进程路径和进程名的两种方法

通过PID获取进程路径和进程名,使用了psapi.h类,获取进程路径,通过_splitpath()函数,获取路径中的文件名。_splitpath()使用方法:void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );Return ValueNoneParamet

2014-01-25 21:58:26 1471

原创 MFC 浏览文件夹,浏览保存文件, 获取当前路径

浏览文件夹,其实用的是Shell里的API[cpp] view plaincopyvoid OnXXXBrowse()  {      CString    strFolderPath;      BROWSEINFO broInfo = {0};      TCHAR       szDisName[MAX_PATH] = {0};  

2014-01-24 19:24:49 595

原创 MFC获取文件夹下的所有文件名

1、获取路径:通过CFileDialog获取文件夹的路径,以及文件夹下面的一个文件OnBnClickedBtnOpenfile(){ // TODO: Add your control notification handler code here CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框 CString csDirP

2014-01-24 19:24:01 2646

原创 MFC获取本地磁盘盘符

有四个基本的函数:GetLogicalDrives, GetLogicalDriveStrings, GetDriveType 和 GetVolumeInformation。第五个是 SetVolumeLabel,如果你愿意,可以用它设置卷标。第一个函数,GetLogicalDrives,返回一个DWORD的位掩码(bitmask)值,以告知驱动盘符。“0”表示是驱动器A,“1”表示驱动器B,

2014-01-24 19:22:38 3222

转载 VC获取网页源码的三种方式

//有三种方法'方法一(只适用于MFC工程)://参数URL:网页地址//返回CString就是网页源码//返回的网页源码是UTF8格式,要转成ANSI等编码才能正常显示#include CString GetWebSource(CString URL){ CInternetSession Session(NULL,0); CString PageData;

2014-01-20 11:44:22 1733

转载 MFC中使用ADO操作各类数据库的封装类,包括MySql、Access、Oracle、MSSql

演示程序可以在此处下载:http://download.csdn.net/detail/php_fly/6033883开发环境开发环境:VS2008注释:部分注释!数据库:Access和Mysql相关链接VC++ ADO 连接 mysql:http://www.cppblog.com/c

2014-01-20 11:43:35 2031

转载 DOM应用---遍历网页中的元素

在我们编写的程序中,如果想要实现对浏览器打开的网页进行监视、模拟操纵、动态提取用户输入、动态修改......等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的表单(form)并枚举出表单域的属性为目标的,对于网页中的其它元素,比如图象、连接、脚本等等,应用同样的方法都可以轻松实现。二、网页的文档层次结构IE 浏览器,采用 DOM(

2014-01-20 11:42:31 556

转载 VC模拟输入中文

#include #include 前者是SendInput函数要用到,后者是字符串转换的时候要用到。void SendAscii(wchar_t data, BOOL shift){ INPUT input[2]; memset(input, 0, 2 * sizeof(INPUT)); if (shift) { input[0].type = INPUT

2014-01-20 11:37:54 680

转载 C++解析JSON

传送门:C++的Json解析库:jsoncpp和boostJsoncpp的使用使用 C++ 处理 JSON 数据交换格式转自:http://blog.csdn.net/php_fly/article/details/12289803

2014-01-20 11:36:35 578

转载 socket的recv非常慢,为什么?

//获取用户信息CString CMySock::GetMemberInfo(char requestUrl[],char Data[]){ char RequestData[1024]; strcpy(RequestData,Data); LPHOSTENT lphost= gethostbyname(requestUrl);

2014-01-20 11:36:01 2655

转载 C++字符编码转换

1.C/C++ 字符编码的转换(ut8、gb2312)2. 将UTF8转换成GBK//将UTF8转换成GBKint UTF8ToGBK(CString &strOut,const char* szSrc){ if(szSrc==NULL) { strOut=""; return -1; } WCHAR *strSrc; TCHAR *szRes; int

2014-01-20 11:34:39 607

转载 VC操作文件、注册表

探寻C++最快的读取文件的方案内存映射文件使用方法c++ windows下读取大文件(内存映射)用内存映射读取大文本文件的类文件夹操作:复制和删除整个文件夹注册表操作(VC_Win32)转自:http://blog.csdn.net/php_fly/article/details/12658277

2014-01-20 11:33:07 573

转载 网络验证相关资料

求网络验证程序转自:http://blog.csdn.net/php_fly/article/details/12421473

2014-01-20 11:32:27 546

空空如也

空空如也

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

TA关注的人

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