自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ctthuangcheng

自学成才。。。。加油!

转载 嵌入式LINUX环境下视频采集知识

V4L2是Linux环境下开发视频采集设备驱动程序的一套规范(API),它为驱动程序的编写提供统一的接口,并将所有的视频采集设备的驱动程序都纳入其的管理之中。V4L2不仅给驱动程序编写者带来极大的方便,同时也方便了应用程序的编写和移植,具有广泛的应用价值。     Video for Linux ...

2013-07-31 17:39:53

阅读数 1734

评论数 0

转载 Web安全测试之XSS

XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的.  比如获取用户的Cookie,导航到恶意网站,携带木马等。作...

2013-07-31 16:39:17

阅读数 1212

评论数 0

转载 Fiddler (五) Mac下使用Fiddler

Fiddler是用C#开发的。  所以Fiddler不能在Mac系统中运行。  没办法直接用Fiddler来截获MAC系统中的HTTP/HTTPS,    Mac 用户怎么办呢?Fiddler可以允许“远程连接”。  我们可以利用这个间接来实现Fiddler捕获Mac系统发出的HTTP/HTTPS...

2013-07-31 01:00:35

阅读数 1524

评论数 0

转载 Fiddler (四) 实现手机的抓包

Fiddler是我最喜爱的工具,几乎每天都用, 我已经用了8年了。 至今我也只学会其中大概50%的功能。 Fiddler绝对称得上是"神器", 任何一个搞IT的人都得着的。小弟我立志, 一定要把Fiddler的所有的功能和用法都写出来。 写成一个完整系列的教程。Fiddler不...

2013-07-31 00:59:05

阅读数 1922

评论数 0

转载 Fiddler (三) Composer创建和发送HTTP Request

Fiddler的功能还有很多, 很多功能都没有被挖掘出来。这次我们介绍Fiddler中的一个非常有用的功能Composer,是用来创建和发送HTTP Request的。Composer的使用方法很简单,看下就知道用了。Fiddler Composer介绍Composer的官方帮助文档:http:/...

2013-07-31 00:56:55

阅读数 1904

评论数 0

转载 Fiddler (二) Script 用法

现在我们来看看Fiddler的高级用法. Fiddler Script。   Fiddler中的script 可以让我们自动修改Http request和Response 的内容。  而不用手动地去下"断点"来修改http Request或Response中的值。 Fiddle...

2013-07-31 00:54:52

阅读数 1646

评论数 0

转载 HTTP协议 (七) Cookie

Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的【细说Cookie】, 让我学到了很多东西。Fish的这篇文章写得太经典了。 所以我这篇文章就没有太多内容了。 最近我打算写一个系列的HTTP文章,我站在HTTP协议的角度, 说说我对Cookie的理解。 Cookie是什...

2013-07-31 00:32:36

阅读数 1254

评论数 0

转载 HTTP协议 (六) 状态码详解

HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。  如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。  本文我花了一个多月的时间把所有的状态码都总结了下,内容太...

2013-07-31 00:22:29

阅读数 1218

评论数 0

转载 HTTP协议 (五) 代理

这次介绍代理服务器, 代理服务器是HTTP协议中一个重要的组件, 发挥着重要的作用。 本文介绍一些HTTP代理服务器的概念和工作原理。什么是代理服务器Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。HTTP的代理服务器即是Web服务器...

2013-07-31 00:18:45

阅读数 1563

评论数 0

转载 HTTP协议 (四) 缓存

这次继续介绍HTTP协议中的缓存机制。HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助。 本文介绍浏览器和Web服务器之间如何处理"浏览器缓存",以及控制缓存的http header.本文会使用Fiddler来查看HTTP request和R...

2013-07-31 00:15:54

阅读数 1358

评论数 0

转载 HTTP协议 (三) 压缩

这次继续介绍HTTP协议中的压缩。本文会使用Fiddler来查看HTTP request和Response。HTTP压缩是指: Web服务器和浏览器之间压缩传输的”文本内容“的方法。 HTTP采用通用的压缩算法,比如gzip来压缩HTML,Javascript, CSS文件。 能大大减少网络传输的...

2013-07-31 00:13:46

阅读数 1315

评论数 0

转载 HTTP协议 (二) 基本认证

http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢?什么是HTTP基本认证桌面应用程序也通过HTTP协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是...

2013-07-31 00:11:02

阅读数 1527

评论数 0

转载 HTTP协议详解

当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对...

2013-07-31 00:02:30

阅读数 1345

评论数 0

转载 Wireshark基本介绍和学习TCP三次握手

这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包。记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实。有了wir...

2013-07-30 23:52:43

阅读数 1227

评论数 0

转载 Fiddler 教程

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。Fiddler的基本介绍Fiddler的官方网站:  www.fiddler2.comFi...

2013-07-30 23:48:14

阅读数 1604

评论数 0

转载 UNIX网络编程——线程池模式比较(ICE线程池模型和L/F领导者跟随者模式)

程池模式一般分为两种:L/F领导者与跟随者模式、HS/HA半同步/半异步模式。 HS/HA 半同步/ 半异步模式 :分为三层,同步层、队列层、异步层,又称为生产者消费者模式,主线程处理I/O事件并解析然后再往队列丢数据,然后消费者读出数据进行应用逻辑处理; 优点:简化编程将低层的异步I/O和高层同...

2013-07-29 22:36:42

阅读数 1962

评论数 0

原创 UNIX网络编程——常用服务器模型总结

下面有9种服务器模型分别是:迭代服务器。并发服务器,为每个客户fork一个进程。预先派生子进程,每个子进程都调用accept,accept无上锁保护。预先派生子进程,以文件锁的方式保护accept。 预先派生子进程,以线程互斥锁上锁的方式保护accept。预先派生子进程,由父进程向子进程传递套接口...

2013-07-29 18:52:02

阅读数 1595

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(总结)

(1)当系统负载较轻是,每来一个客户请求现场派生一个子进程为之服务的传统并发服务器程序模型就足够了。这个模型甚至可以与inetd结合使用,也就是inetd处理每个连接的接收。我们的其他意见是就重负荷运行的服务器而言的,譬如Web服务器。 (2)相比传统的每个客户fork一次设计示范,预先创建一个子...

2013-07-29 18:12:37

阅读数 1297

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(八)

TCP预先创建线程服务器程序,主线程统一accept             最后一个使用线程的服务器程序设计示范是在程序启动阶段创建一个线程池之后只让主线程调用accept并把每个客户连接传递给池中某个可用线程。            本设计示范的问题在于主线程如何把一个已连接套接字传递给线程池...

2013-07-29 17:17:58

阅读数 1319

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(七)

TCP预先创建线程服务器程序,每个线程各自accept        前面讨论过预先派生一个子进程池快于为每个客户线程派生一个子进程。在支持线程的系统上,我们有理由预期在服务器启动阶段预先创建一个线程池以取代为每个客户线程创建一个线程的做法有类似的性能加速。本服务器的基本设计是预先创建一个线程池,...

2013-07-29 16:46:12

阅读数 1358

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(六)

TCP并发服务器程序,每个客户一个线程             前面讲述了,每个客户一个进程的服务器,或为每个客户现场fork一个子进程,或者预先派生一定数目的子进程。如果服务器主机支持线程,我们就可以改用线程以取代子进程。#include "unpthread.h" int...

2013-07-29 16:40:59

阅读数 1020

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(五)

TCP预先派生子进程服务器程序,传递描述符               对预先派生子进程服务器程序的最后一个修改版本是只让父进程调用accept,然后把所接受的已连接套接字“传递”给某个子进程。这么做绕过了为所有子进程的accept调用提供上锁保护的可能需求,不过需要从父进程到子进程的某种形式的描...

2013-07-29 16:34:54

阅读数 1013

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(四)

TCP预先派生子进程服务器程序,accept使用线程上锁保护             我们使用线程上锁保护accept,因为这种方法不仅适用于同一进程内各线程之间的上锁,而且适用于不同进程之间的上锁。        为了使用线程上锁,我们的main,child_make和child_main函数都...

2013-07-29 16:20:50

阅读数 1057

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(三)

TCP预先派生子进程服务器程序,accept无上锁保护                 我们的第一个“增强”型服务器程序使用称为预先派生子进程的技术。使用该技术的服务器不像传统意义的并发服务器那样为每个客户现场派生一个子进程,而是启动阶段预先派生一定数量的子进程,当各个客户连接到达时,这些子进程立...

2013-07-29 13:57:01

阅读数 1365

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(二)

TCP并发服务器程序,每个客户一个子进程                            传统上并发服务器调用fork派生一个子进程来处理每个客户。这使得服务器能够同时为多个客户服务,每个进程一个客户。客户数目的唯一限制是操作系统对以其名义运行服务器的用户ID能够同时有多个子进程的限制。并发...

2013-07-29 13:38:13

阅读数 1344

评论数 0

原创 UNIX网络编程——客户/服务器程序设计示范(一)

下面给出的是客户程序用于测试我们的服务器程序的各个变体。#include "unp.h" #define MAXN 16384 /* max # bytes to request from server */ int main(int argc, char **argv)...

2013-07-29 11:45:59

阅读数 1197

评论数 0

原创 UNIX网络编程——使用线程的TCP回射服务器程序

同一进程内的所有线程除了共享全局变量外还共享:(1)进程指令;(2)大多数数据;(3)  打开的文件(即描述符);(4)信号处理函数和信号处置;(5)当前工作目录;(6)用户ID和组ID。不过每个线程有各自的:(1)线程ID;(2)寄存器集合,包括程序计数器和栈指针;(3)栈(用于存放局部变量和返...

2013-07-29 11:07:47

阅读数 1338

评论数 0

转载 UNIX网络编程——TCP—经受时延与nagle算法、滑动窗口、拥塞窗口

1、经受时延:    TCP在接收到数据时并不立即发送ACK,相反,它推迟发送,以便将ACK与需要沿该方向发送的数据一起发送,时延为200ms,超过时延范围,发送确认。   2、nagle算法:    一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分...

2013-07-28 23:07:46

阅读数 1704

评论数 0

原创 UNIX网络编程——带外数据小结

TCP没有真正的带外数据,不过提供紧急模式和紧急指针。一旦发送端进入紧急模式,紧急指针就出现在发送到对端的分节中的TCP首部中。连接的对端收取该指针是在告知接收进程发送端已经进入紧急模式,而且该指针指向紧急数据的最后一个字节。然而所有数据的发送仍然受TCP正常的流量控制支配。      套接字AP...

2013-07-28 22:57:28

阅读数 1301

评论数 0

原创 UNIX网络编程——send与recv函数详解

#include ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags); ssize_t send(int sockfd, const void *buff, size_t nbytes, int flags);send和r...

2013-07-28 22:43:17

阅读数 1644

评论数 0

转载 UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

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

2013-07-28 21:37:42

阅读数 1504

评论数 0

转载 UNIX网络编程——TCP服务器“拒绝服务攻击” 解决方案

说这是一个完全的解决方案,其实有点夸大了,但这个方案确实可以缓解TCP服务器遭受“拒绝服务攻击”时表现出的脆弱性。       当服务器以TCP的方式提供服务时,客户端通过tcp连接上服务器。这时,恶意的程序,也可以通过tcp连接我们的服务器,如果恶意的程序采用循环与我们的服务器建立成千上万的连接...

2013-07-28 21:25:17

阅读数 1767

评论数 0

原创 UNIX网络编程——客户/服务器心搏函数

下面是关于回送客户和服务器程序开发一些简单的心搏函数。这些函数可以发现对端主机或到对端的通信路径的过早失效。         在给出这些函数之前我们必须提出一些警告。首先,有人会想到使用TCP的保持存活特性(SO_KEEPALIVE套接字选项)来提供这种功能,然而TCP得在连接已经闲置2小时之后才...

2013-07-28 20:31:08

阅读数 2866

评论数 0

原创 UNIX网络编程——TCP带外数据小结

带外数据概念实际上时向接收端传送三个不同的信息:(1)发送端进入紧急模式这个事实。接收进程得以通知这个事实的手段不外乎SIGURG信号或select调用。本通知在发送进程发送带外字节后由发送端TCP立即发送,即使往接收端的任何数据发送因流量控制而停止了,TCP仍然发送本通知。本通知可能导致接收端进...

2013-07-28 20:04:24

阅读数 2426

评论数 0

原创 UNIX网络编程——sockatmark函数

每当收到一个带外数据时,就有一个与之关联的带外标记。这是发送进程发送带外字节时该字节在发送端普通数据流中的位置。在从套接字读入期间,接收进程通过调用sockatmark函数确定是否处于带外标记。#include int sockatmark(int sockfd); /* 返回值:如果在带外标记...

2013-07-28 19:36:49

阅读数 2334

评论数 0

原创 UNIX网络编程——带外数据

许多传输层有带外数据的概念,它有时也称为经加速数据。其想法是一个连接的某端发生了重要的事情,而且该端希望迅速通告其对端。这里“迅速”意味着这种通知应该在已排队等待发送的任何“普通”(有时称为“带内”)数据之前发送。也就是说,带外数据被认为具有比普通数据更高的优先级。带外数据并不需要在客户和服务器之...

2013-07-26 17:18:22

阅读数 4067

评论数 3

原创 UNIX网络编程——信号驱动式I/O

信号驱动式I/O是指进程预先告知内核,使得当某个描述符上发生某事时,内核使用信号通知相关进程。     针对一个套接字使用信号驱动式I/O,要求进程执行以下3个步骤:建立SIGIO信号的信号处理函数。设置该套接字的属主,通常使用fcntl的F_SETOWN命令设置。开启该套接字的信号驱动式I/O,...

2013-07-26 16:29:19

阅读数 1768

评论数 0

原创 UNIX网络编程——非阻塞accept

当有一个已完成的连接准备好被accept时,select将作为可读描述符返回该连接的监听套接字。因此,如果我们使用select在某个监听套接字上等待一个外来连接,那就没有必要把监听套接字设置为非阻塞,这是因为如果select告诉我们该套接字上已有连接就绪,那么随后的accept调用不应该阻塞。  ...

2013-07-26 16:09:54

阅读数 1845

评论数 0

原创 UNIX网络编程——非阻塞connect: Web客户程序

非阻塞的connect的实现例子出自Netscape的Web客户程序。客户先建立一个与某个Web服务器的HTTP连接,再获取一个主页。该主页往往含有多个对于其他网页的引用。客户可以使用非阻塞connect同时获取多个网页,以此取代每次只获取一个网页的串行获取手段。图16-12展示了一个并行建立多个...

2013-07-26 14:15:23

阅读数 1319

评论数 0

原创 UNIX网络编程——非阻塞connect:时间获取客户程序

#include "unp.h" int connect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec) { int flags, n, error; socklen_t len; fd_...

2013-07-26 13:14:17

阅读数 1938

评论数 0

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