自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (3)
  • 收藏
  • 关注

转载 SOAP消息

一、SOAP协议概述    soap简单对象访问协议,是一个用来在分散/分布式的环境中交换信息的简单协议,是一个基于xml的协议。soap本身是一个无状态的、单向的消息交换机制。    soap中没有包含应用于soap消息路由、可靠数据传输和穿越防火墙等方面的应用程序数据传送语义,但是它提供了一个机制,通过这个机制,特定于应用程序的信息能够以一种可靠的方式传送。    

2015-09-06 11:49:18 1149

转载 Source Insight 的应用技巧

目录(?)[+]目录版本记录... 2目录... 31 简介... 52 搭建我们的SI环境... 52.1 搭建步骤... 52.2 说明... 63 应用技巧... 63.1 初级应用技巧... 63.1.1 解决字体不等宽与对齐的问题... 63.1.2 把TAB变成4个空格... 73.1.3 更改背景色... 73.1.

2015-09-02 14:02:13 712

转载 TCP连接的状态详解以及故障排查

目录(?)[+]我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容)1、TCP状态linux查看tcp的状态命令:1)、netstat -nat  查看TCP各个状态的数量2)、lsof  -i:port  可以检测到打开套接字的状况3)、  sar -n SOCK 查看tcp创建的连接

2015-09-01 09:32:19 1624

转载 NAT 穿越

最近在看东西的时候发现很多网络程序中都需要NAT穿越,特意在此总结一下。先做一个约定:内网A中有:A1(192.168.0.8)、A2(192.168.0.9)两用户               网关X1(一个NAT设备)有公网IP 1.2.3.4内网B中有:B1(192.168.1.8)、B2(192.168.1.9)两用户,               网关Y1(一个NAT

2015-08-27 10:20:49 384

转载 P2P,UDP和TCP穿透NAT

1. NAT 简介NAT(Network Address Translation ,网络地址转换) 是一种广泛应用的解决IP 短缺的有效方法, NAT 将内网地址转和端口号换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信。1.1. NAT 分类NAT 从表面上看有三种类型:静态 NAT 、动态地址 NAT 、地址端口转换 NAPT 。  (1 )静态NAT 

2015-08-27 10:11:40 393

转载 UDP穿越NAT原理

论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念:     NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Ne

2015-08-27 09:37:54 1132

转载 Socket中listen/accept函数的区别

listen函数摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。listen函数在一般在调用bind之后-调用accept之前调用,它的函数原型是:intlisten(int sockfd, int backlog)

2015-08-13 11:25:07 4136

转载 网络编程socket之bind、Listen 及 accept

1.bind     bind函数用于将套接字与指定端口相连.本函数适用于未连接的数据报或流类套接口,在connect()或listen()调用前使用。当用socket()创建套接口后,它便存在于一个名字空间(地址族)中,但并未赋名。bind()函数通过给一个未命名套接口分配一个本地名字来为套接口建立本地捆绑(主机地址/端口号)。 头文件

2015-08-11 10:57:28 601

转载 EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接

EWOULDBLOCK用于非阻塞模式,不需要重新读或者写EINTR指操作被中断唤醒,需要重新读/写在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NON

2015-07-29 19:30:23 502

转载 TR069 (CWMP协议即CPE广域网管理协议)

TR069   TR-069是由DSL论坛(www.dslforum.org)所开发的技术规范之一,其全称为“CPE广域网管理协议”。它提供了对下一代网络中家庭网络设备进行管理配置的通用框架和协议,用于从网络侧对家庭网络中的网关、路由器、机顶盒等设备进行远程集中管理。   这些设备不论是在最开始安装的时候还是在后期运行中的业务配置变更或是出现故障需要维护的时候,都需要通过管理接口对设备进行

2015-07-27 10:13:57 2164

转载 TIPC 透明通信协议

说实话,接触TIPC也不是一天两天了,在TSP的时候就和它天天打交道。今天好好来研究一下。TIPC sourceforge site:http://tipc.sourceforge.net/index.shtml转载自:http://blog.chinaunix.net/uid-20205875-id-3042255.htmlTIPC是爱立信的某个工程师弄出来的,后来开源了。这段时间我

2015-06-10 11:44:56 4039

转载 Linux inotify功能及实现原理

2011-12-22 19:42 14593人阅读 评论(0) 收藏 举报linuxstructeventslistdescriptorfile目录(?)[+]1. inotify主要功能它是一个内核用于通知用户空间程序文件系统变化的机制。众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开

2015-06-09 19:23:31 475

转载 C 语言可变参数

对于可变参数(const char* fmt,…)一些研究及总结。首先、在函数中使用可变参数,要包含头文件。它包含以下几个宏:va_start;va_arg;va_end;va_copy。VA_ARG宏,获取可变参数的当前参数,返回指定类型并将指针指向下一参数(t参数描述了当前参数的类型):#define va_arg(ap,t) ( *(t *)((ap += _INTSIZ

2015-06-04 13:14:58 427

转载 UNIX Domain Socket IPC (sockaddr_un )

socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个

2015-05-27 09:33:04 499

转载 Linux下的多进程编程初步(转载)

分类: C/C++学习 unix 环境高级编程unix/linux学习篇 2011-10-24 00:11 16207人阅读 评论(10)收藏 举报 linux编程unix多线程semaphorefile         最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只

2015-05-18 17:28:43 348

转载 本地socket unix domain socket .

socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进

2015-05-18 15:27:08 618

转载 详解coredump

一,什么是coredump        我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。        通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆

2015-05-11 17:39:09 344

转载 孤儿进程与僵尸进程[总结]

1、前言  之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进

2015-04-27 23:25:15 355

转载 linux signal 详解

一 信号的种类可靠信号与不可靠信号, 实时信号与非实时信号可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号不支持排队,信号可能会丢失, 比如发送多次相同的信号, 进程只能收到一次. 信号值小于SIGRTMIN的都是非可靠信号.非可靠信号就是非实时信号, 后来, Linux改进了信号机制, 增加了32种新的信号, 这些信

2015-04-27 23:10:31 456

转载 Linux 信号signal处理机制

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一

2015-04-27 23:01:15 371

转载 linux 信号量

信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某种程序发生了什么事件,还可以给进程传递数据。一、信号的来源信号的来源可以有很多种试,按照产生条件的不同可以分为硬件和软件两种。1、  硬件方式当用户在终端上按下某键时,将产生信号。如按下组合键后将产生一个SIG

2015-04-27 14:46:40 535

转载 LINUX select()函数的应用

select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET    select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct

2015-04-27 10:45:14 390

转载 UNIX SOCKET编程概述

1 . Layered Model of Networking Socket 编程的层次模型如下图所示,最上面是应用层,应用层下面的是 SOCKET API层,再下面是传输层和网络层…… 实际上, Sockets API 层并不是一个真正定义的网络层次,但却很好的描述了Socket 编程所处的位置和所扮演的角色。TCP 状态转换图2

2015-04-14 11:13:48 470

转载 Unix环境下的Socket编程

本文先对socket进行简单的介绍,然后详细讲解socket编程的步骤及每一步作用,最后通过一个实例实现客户端与服务器端的通信,代码经测试可用。 1、什么是 Socket?     Socket接口是TCP/IP 网络的 API,Socket 接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP 网络上的应用程序。要学 Internet 上的 TCP/IP 网络编程,

2015-04-14 11:04:06 416

转载 Linux下的IPC-UNIX Domain Socket

一、 概述UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向消息的UNIX Domain Soc

2015-04-14 10:13:55 368

转载 typedef 用法详解(二)

typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int);这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数指针, 函数类型是带两个int 参数, 返回一个int在分析这种形

2015-04-10 11:56:35 402

转载 typedef 用法详解(一)

第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什

2015-04-10 11:53:40 1517

原创 浅析Linux驱动模型中的底层数据结构kobject和kset

1、kobject        Linux内核用kobject来表示一个内核对象。它和Sysfs文件系统联系密切,在内核中注册到系统中的每个kobject对象在sysfs文件系统中对对应着一个文件目录。kobject数据结构通常的用法是嵌入到其对他的数据结构中(即容器,比如cdev结构),用于实现内核对该类数据结构对象的管理。这些数据结构(容器)通过kobject连接起来,形成了一个树状结构

2014-08-11 18:50:32 954

原创 浅析Linux内核同步机制

很早之前就接触过同步这个概念了,但是一直都很模糊,没有深入地学习了解过,近期有时间了,就花时间研习了一下《linux内核标准教程》和《深入linux设备驱动程序内核机制》这两本书的相关章节。趁刚看完,就把相关的内容总结一下。为了弄清楚什么事同步机制,必须要弄明白以下三个问题:l        什么是互斥与同步?l        为什么需要同步机制?l        Linux内核提供哪

2014-07-13 19:43:41 6098

原创 信号量机制中的DOWN操作与UP操作详解

DOWN操作:linux内核中,对信号量的DOWN操作有如下几种:void down(struct semaphore *sem); //不可中断int down_interruptible(struct semaphore *sem);//可中断int down_killable(struct semaphore *sem);//睡眠的进程可以因为受到致命信号而被唤醒,中断获取信号量

2014-07-13 11:48:49 8020 1

转载 Linux用户空间与内核空间

Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。

2014-07-03 17:06:39 506

转载 linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间

linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。  Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较

2014-07-03 17:05:03 1266 1

原创 浅析Linux字符设备驱动程序内核机制

前段时间在学习linux设备驱动的时候,看了陈学松著的《深入Linux设备驱动程序内核机制》一书。说实话,这是一本很好的书,作者不但给出了在设备驱动程序开发过程中的所需要的知识点(如相应的函数和数据结构),还深入到linux内核里去分析了这些函数或数据结构的原理,对设备驱动开发的整个过程和原理都分析的很到位。但可能是由于知识点太多,原理也比较深的原因,这本书在知识点的排版上跨度有些大,所以读起来显

2014-06-27 22:00:46 1176

转载 Linux-2.6.25内核帧缓冲设备驱动分析

帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面、游戏、影视软件等可视化应用时都必须用到帧缓冲技术,而现在随着消费逐渐娱乐化的大趋势,可视化应用已经在产品开发中越来越重要,因此,对于帧缓冲技术的理解和掌握就非常重要了。1 Frambuffer介绍     帧缓冲在lin

2014-06-27 12:00:36 755

原创 Linux内核导出符号宏定义EXPORT_SYMBOL的源码分析

源代码:…….#ifndef MODULE_SYMBOL_PREFIX#define MODULE_SYMBOL_PREFIX ""#endif…….struct kernel_symbol      //内核符号结构{       unsignedlong value;  //该符号在内存地址中的地址       constchar *name;    /

2014-06-23 11:45:44 3479 1

原创 数据结构-图

图的C语言源代码实现1、图的定义图:是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或者联系。对象由顶点表示,而对象之间的关系或关联则通过顶点之间的边来表示。2、图的应用图算法、统计网络跳数、拓扑排序、图着色、哈密顿圈问题、分团问题、可序列化冲突3、图的代码实现

2014-06-18 10:08:21 912

原创 数据结构-堆和优先队列

1、定义堆:是一种

2014-06-18 10:00:03 566

原创 Linux内核启动过程总结(图文)

前些时间在学习linux内核的时候,有完整地看过linux内核启动的代码,但是可能是因为汇编语言基础不够扎实,很多地方没有理解到位,所以两个月过去了,现在回头看又觉得生疏了。不过我发现对启动引导过程的整体理解非常有利于具体启动代码的理解和阅读。所以就把《linux2.6内核标准教程中》一书中关于启动引导过程的总结摘录下来。以便在需要的时候看看。

2014-06-17 11:27:40 771

原创 ARM-LINUX交叉编译环境的搭建

1、交叉编译环境

2014-06-17 09:53:34 399

原创 数据结构-树

1、二叉树的实现代码2、二叉搜索树的实现代码

2014-06-17 09:51:52 594

[数据结构(C语言版)].严蔚敏_吴伟民.扫描版.pdf

[数据结构(C语言版)].严蔚敏_吴伟民.扫描版.pdf

2014-07-04

计算机组网技术实验报告

添加用户 添加组 组和用户的配置 DNS配置 DHCP配置实验 TELNET配置 IIS配置 FTP配置(安全管理)根、虚拟、子目录;只读、写入、删除等 Web站点配置(安全问题)根、虚拟、子目录;只读、写入、删除、列表等 制作一个简单的网站,并发布到站点上(链接、简单交互、图片、表单等)

2013-07-24

空空如也

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

TA关注的人

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