2013年1月30日

Javascript的匿名函数

摘要: 一、什么是匿名函数?在Javascript定义一个函数一般有如下三种方式:函数关键字(function)语句:function fnMethodName(x){alert(x);}函数字面量(Function Literals):var fnMethodName = function(x){alert(x);}Function()构造函数:var fnMethodName = new Function('x','alert(x);')上面三种方法定义了同一个方法函数fnMethodName,第1种就是最常用的方法,后两种都是把一个函数复制给变量fnMethodN 阅读全文

posted @ 2013-01-30 19:19 善敗將軍 阅读(140) 评论(0) 推荐(0) 编辑

[从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)

摘要: jQuery片段:[javascript]view plaincopy(function(){//这里忽略jQuery所有实现})(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的。然而,在看到源码的第一眼,我就迷糊了。为什么只有一个匿名函数又没看到运行(当然是运行了……),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN。结果相信现在很多人都很清楚了(因为在我之后也不乏来者,呵呵~)。当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来!真神奇哦! 嘿嘿!胡闹到此为止。在这一节,我们碰到的jQuery片段是一组立即.. 阅读全文

posted @ 2013-01-30 19:18 善敗將軍 阅读(171) 评论(0) 推荐(0) 编辑

2013年1月29日

socket编程:SO_REUSEADDR例解

摘要: 网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,希望能够解答一些人的疑难。 其实这个问题在Richard Stevens的《Unix网络编程指南》卷一里有很详细的解答(中文版P166-168页)。这里我只是写几个基本的例子来验证这个问题。 首先声明一个问题:当两个socket的address和port相冲突,而你又想重用地址和端口,则旧的socket和新的socket都要已经被设置了SO_REUSEADDR特性,只有两者之一有这个特性还是有问题的。 SO_REUSEADDR可以用在以... 阅读全文

posted @ 2013-01-29 19:14 善敗將軍 阅读(340) 评论(0) 推荐(0) 编辑

Nagle 算法

摘要: 1. Nagel算法 TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一个连接会设置MSS参数,因此,TCP/IP希望每次都能够以MSS尺寸的数据块来发送数据)。Nagle算法就是为了尽可能发送大块数据,避免网络中充斥着许多小数据块。 Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段。 所谓“小段”,指的是小于MSS尺寸的数据块,所谓“未被确认”,是指一个数据块发送出去后,没有收到对方发送的ACK确认该数据已收到。 Nagle算法的规则... 阅读全文

posted @ 2013-01-29 19:13 善敗將軍 阅读(351) 评论(0) 推荐(0) 编辑

基于Socket的UDP和TCP编程介绍

摘要: 一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(STreamsocket)的一种。 UDP:用户数据报协议。UDP是一种无连接协议。UDP套接口是数据报套接口(datagram socket)的一种。 二、TCP和UDP介绍 1)基本TCP客户—服务器程序设计基本框架 说明:(三路握手) 1.客户端发送一个SYN段(同步序号)指明客户打算连接的服务器端口,以及初始化序号(ISN) 。 2.服务器发回... 阅读全文

posted @ 2013-01-29 17:28 善敗將軍 阅读(216) 评论(0) 推荐(0) 编辑

socket中的SO_REUSEADDR

摘要: TCP共有9个网路状态,其中涉及到关闭的状态有5个。 在我们编写网络相关程序的时候,这5个状态经常出现。因为这5个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP在关闭时网络状态变化情况,为我们诊断网络中各种问题,快速定位故障有着非常重要的作用和意义。 为此,我根据W.Richard Stevens的《TCP/IP详解》一书,将这5个状态制成一个时序图(其实原书也有这个图,但不是很好理解),其中黑色字体来表示应用程序行为,红色字体是操作系统行为。================================================ 阅读全文

posted @ 2013-01-29 17:27 善敗將軍 阅读(252) 评论(0) 推荐(0) 编辑

2013年1月28日

cygwin下dll和lib的生成方法

摘要: 该文中只能在cygwin环境中运行gcc命令,在linux操作系统中执行gcc命令效果不同。cygwin中生成的动态链接库(.dll)和可执行文件(.exe)均为PE文件格式; linux操作系统生成的动态链接库(.so)和可执行文件()为ELF文件格式dll动态链接库lib静态链接库cygwin可以编译生成windows下供调用的dll,包括vc可识别的lib。Cygwin-GCC : Cygwin自带了一个GCC, 用于把C/C++-Source编译成Cygwin平台下的EXE/DLL (使用Cygwin必须用其自带的GCC, 因为内部会生成一些针对于平台的特定的初始化代码, 如果用其余版 阅读全文

posted @ 2013-01-28 18:09 善敗將軍 阅读(2081) 评论(0) 推荐(0) 编辑

基于MSYS的Win32动态链接库DLL开发

摘要: 1、介绍动态链接库,是一个很古老,但又很常用的技术。在我们平时的代码编译中,通常是将静态库链接到程序中,最终静态库成为程序二进制的一部分而融合成一体,但是,这样的静态链接面临的一个问题就是,如果一个软件的各个部分是通过协商好接口,由不同的小组所编写的,那么如何能够让每一个小组独立的维护自己所属的部分,而不用重新编译其他人所开发的代码,动态链接库由此而生。动态链接库,可以让每一个人维护的部分以独立的库的形式存在而不用与应用程序融为一体,也就是dll文件,应用程序调用其中的函数时,需要动态的加载和链接其中的函数,然后可以正常的与静态链接一样的进行操作。实际上在后来的动态链接应用技术的发展之中,许多 阅读全文

posted @ 2013-01-28 18:04 善敗將軍 阅读(733) 评论(0) 推荐(0) 编辑

java nio(reactor, selector, selectionKey)

摘要: SocketChannel vs. ServerSocketChannel父类:SelectableChannel。Channel表现了一个可以进行IO操作的通道(比如,通过FileChannel,我们可以对文件进行读写操作)ServerSocketChannel主要用在Server中,用于接收客户端的链接请求SocketChannel则用于真正的读写数据,同时还可以用于客户端发送链接请求。真正实现读写数据操作的就是这些SocketChannel,上面的ServerSocketChannel只是负责接收连接请求。以下均简称为channelchannel vs. Selectorchannel需 阅读全文

posted @ 2013-01-28 17:32 善敗將軍 阅读(1132) 评论(0) 推荐(0) 编辑

ELF文件格式

摘要: elf文件格式学习总结 编译器将一个源文件生成目标文件时,会在目标文件中生成符号表 和重定位表 。 符号表包含在文件中定义的全局符号 以及在文件中引用的外部符号 (外部函数或变量)。 重定位表告诉链接器在哪些位置要进行重定位操作。 编译器生成的目标文件在文件的 编译器将一个源文件生成目标文件时,会在目标文件中生成符号表和重定位表。符号表包含在文件中定义的全局符号以及在文件中引用的外部符号(外部函数或变量)。重定位表告诉链接器在哪些位置要进行重定位操作。编译器生成的目标文件在文件的开始处会有一个elf头,描绘了整个文件的组织结构。它还包括很多节(section)。这... 阅读全文

posted @ 2013-01-28 17:31 善敗將軍 阅读(391) 评论(0) 推荐(0) 编辑

导航