随笔 - 75
文章 - 0
评论 - 190
阅读 -
29万
随笔分类 - 读书笔记
随笔分类汇总目录
摘要:两年多的时间里写了一些东西,做个目录方便自己查找。也包含了自己打算写的一些东西。一.网络协议1.字节和字符,对信息进行编码2.分组报文,协议和Socket的概念3.Socket:流,TCP连接,TCP可靠性概述4.TCP和流5.关于TCP的可靠性6.用TCP/IP实现自己简单的应用程序协议:成帧器部分7.用TCP/IP实现自己简单的应用程序协议:其余部分(包括完整代码)8.用TCP/IP实现自己简单的应用程序协议:最后再返回来看HTTP协议9.由TCP的可靠性实现对比WCF中可靠性的实现(未完成)10.由传输过程中需要面对的问题探讨WCF中的“可靠性”二.多线程之旅1.多线程之旅——从概念开始
阅读全文
2012年读书计划 ,争取在世界末日来之前看完
摘要:1.怎样解题 数学思维的新方法http://book.douban.com/subject/2124114/2.代码大全http://book.douban.com/subject/1477390/3.Windows并发编程指南http://book.douban.com/subject/4214617/4.软件框架设计艺术http://book.douban.com/subject/6003832/5.Effective C++http://book.douban.com/subject/1842426/6.Effective Javahttp://book.douban.com/subje
阅读全文
关于TCP的可靠性
摘要:TCP是一个可靠的协议。有时人们会说:"TCP能够保证它所发送数据的可靠传输。"这种说法尽管很常见,但却非常不恰当。首先,只要稍微想一下就会知道这不可能是对的。比如,假设在数据传输的过程中将一台主机从网络上断开,TCP这侧不管做出何种努力,都无法获取其余 的数据。网络确实会中断,主机确实会崩溃,用户确实会在TCP连接仍然活跃的时候关机。这些事件或其他类似的事件都使得TCP无法将它从应用程序收到的数 据传送出去。但更重要的是,TCP"确保可靠传输"这种说法会对不够谨慎的网络程序员产生微妙的影响。当然,没人真的会相信TCP有某种魔法总是可以将数据安全 地传送
阅读全文
TCP和流
摘要:TCP是一种流协议(stream protocol)。这就意味着数据是以字节流的形式传递给接收者的,没有固有的"报文"或"报文边界"的概念。从这方面来说,读取TCP数据就像从串行端口读取数据一样--无法预先得知在一次指定的读调用中会返回多少字节(也就是说能知道总共要读多少,但是不知道具体某一次读多少...
阅读全文
Socket:流,TCP连接,TCP可靠性概述
摘要:如前文所说,不同类型的Socket与不同类型的底层协议族以及同一协议族中的不同协议相关联。而我想说的主要就是TCP/IP协议族中的内容。现在TCP/IP协议族中的主要socket类型为"流套接字(stream socket)"和"数据报套接字(datagram socket)"。如果类比到现实中 stream socket类似于打电话沟通,datagram socket类似于写信沟通。当然,其他协议族当然也有相应的stream socket和datagram socket。 我学习的时候喜欢把类似的事物的异同点相比较,因此我就先从相同点开始说起。 一.C
阅读全文
分组报文,TCP、UDP协议和Socket的概念
摘要:这篇随笔是我接着上篇《字节和字符,对信息进行编码》继续写的内容,看过上篇随笔能更好的理解这篇内容。我想从基础的开始说起,一直说到Asp.net,WCF为止。 信息是指由程序创建和建设的“字节序列”。在网络环境中,这些字节序列被称作“分组报文”。一组报文包括了网络用来完成工作的控制信息,还包括了数据信
阅读全文
字节和字符,对信息进行编码
摘要:TCP/IP协议以字节的方式传输用户数据,并没有对其进行检查和修改。这个特点使得应用程序可以非常灵活地对其中传输的信息进行编码。TCP/IP的唯一约束是,信息必须在块(chunk)中发送和接收,而块的长度必须是8位的倍数。而字节正好是8位的,因此我们可以认为在TCP/IP协议中传输的信息是字节序列。鉴于此,我们可以进一步把传输的信息看做数字序列或数组,每个数字的取值范围是0~255(8位)应用程序协议:明确定义了信息的发送者应该怎样排列和解释这些位序列(bit sequence),同时还要定义接受者应该怎样解析,这样才使得信息的接受者和发送者能够抽取每个字段的意义。在Java和C#程序中,In
阅读全文
开始聊聊C#泛型和委托(一)
摘要:上篇文章简单的谈了谈C#编译器和JIT编译器,本来想接着写类型,对象,线程栈和托管堆在运行时的相互关系的,可惜讲解这部分采用画图的方式比较好,所以就先跳过了。在JAVA中,泛型只被JAVA编译器支持,并不被JVM所支持,也就是说没有定义新的字节码来表示泛型类型,自然在JVM里面也不会有新的指令来支持新的字节码。类比到.NET来说,也就是被C#编译器支持而不被CLR所支持。这样就产生了很多有趣的问题。我们都知道我们的代码都要经过编译器的翻译改动,JAVA中的泛型就是JAVA编译器采用类型擦除的方式来实现泛型的。定义的泛型类型,都自动提供了一个相应的原始类型(raw type)原始类型的名字就是删
阅读全文
谈.NET,由编译器开始谈起
摘要:(这系列文章主要以我的读书笔记为基础写成的,因此可能跳跃性比较大。我想写的东西不只是包含一些结论,还包括了自己在学习时的所思所想。其中肯定有不妥之处,希望能得到指正。)编译器是什么?这个问题在我自学的开始阶段的确困扰了我很久。简单的说,就是把高级语言翻译成低级语言的东西。高级语言我喜欢叫“源代码”。就如同一般的翻译一样,翻译的东西可能会夹带写译者的想法,所以你写的东西和实际被翻译出来的东西未必就是一样的。比如说一个delegate关键字,经过C#编译器编译之后,在IL中就表现成了一个有着4个方法的类,而且该类符合异步编程模型的规定。其实还有很多地方带有译者的思想,比如对字符串常量"a
阅读全文