冠冕堂皇

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页

2013年7月25日

摘要: 作者:蓝形参,Geek 伪技术宅 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是服务器还没有把数据传回来),这时候该怎么办?阻塞:阻塞是个什么概念呢?比如某个时候你在等快递,但是你不知道快递什么时候过来,而且你没有别的事可以干(或者说接下来的事要等快递来了才能做)... 阅读全文
posted @ 2013-07-25 13:24 冠冕堂皇 阅读(304) 评论(0) 推荐(0)

摘要: 一、I/O模型首先,输入操作一般包含两个步骤:1、等待数据准备好(waiting for data to be ready)。对于一个套接口上的操作,这一步骤关系到数据从网络到达,并将其复制到内核的某个缓冲区。2、将数据从内核缓冲区复制到进程缓冲区(copying the data from the kernel to the process)。二、I/O模型类型其次了解一下五种I/O模型:blocking I/Ononblocking I/OI/O multiplexing (selectandpoll)signal driven I/O (SIGIO)asynchronous I/O (t 阅读全文
posted @ 2013-07-25 13:23 冠冕堂皇 阅读(750) 评论(0) 推荐(1)

2013年7月23日

摘要: http://www.cnblogs.com/wangkunyu/archive/2013/07/22/3206477.html“open-close"prinple (OCP) Open-Closed Principle tells that:a software entity should open to extend and close to modify.advantage: by extending existing software system,we can offer new actions,in order to meet new meet to software, 阅读全文
posted @ 2013-07-23 14:52 冠冕堂皇 阅读(300) 评论(0) 推荐(0)

2013年7月11日

摘要: 前言:本文介绍为什么使用Dns.GetHostAddresses()在不同计算机上执行结果不同的原因;并且给出了筛选IPv4或者ipv6地址的代码。在XPsp3系统和Win7系统分别执行Dns.GetHostAddresses()方法,得到了不同的结果:win7:xp:xp中在cmd输入如下命令:原因可知:xpsp3系统没有安装ipv6协议,下面安装进行测试:安装ipv6协议:再输入ipv6 if >D:\ipv6if.txt输出内容如下:Interface 6: Ethernet: 本地连接 Guid {14F445CB-3489-474B-B644-5F749E251F46} use 阅读全文
posted @ 2013-07-11 17:19 冠冕堂皇 阅读(1273) 评论(0) 推荐(0)

摘要: 窗体闪退,在不同机器上运行效果不同:有的闪退;有的正常;有的弹框。从弹框的机器得到信息:EventType clr20r3 P1....P2...PN搜索大概得到如下信息:在某些Windows Server 2003的操作系统上,运行.Net 2.0或者3.5的应用程序时,会发现没有任何反应,到系统的事件查看器里会发现类似EventType clr20r3 P1....P2...PN的错误提示。很可能的原因就是:你的应用程序出现了异常,而.net没有或者无法捕捉该异常,所以导致出现如下情况:1.双击可执行程序,没有反应。2.此时去任务管理器中会看到一个DW20.exe的进程,不久会自动消失3. 阅读全文
posted @ 2013-07-11 10:21 冠冕堂皇 阅读(1010) 评论(0) 推荐(0)

2013年7月9日

摘要: 黄色框线里面表示客户端请求关闭连接。补充细节(来自网络):关于以上的四次握手,我补充下细节:1. 默认情况下(不改变socket选项),当你调用close( or closesocket,以下说close不再重复)时,如果发送缓冲中还有数据,TCP会继续把数据发送完。2. 发送了FIN只是表示这端不能继续发送数据(应用层不能再调用send发送),但是还可以接收数据。3. 应用层如何知道对端关闭?通常,在最简单的阻塞模型中,当你调用recv时,如果返回0,则表示对端关闭。在这个时候通常的做法就是也调用close,那么TCP层就发送FIN,继续完成四次握手。如果你不调用close,那么对端就会处于 阅读全文
posted @ 2013-07-09 16:22 冠冕堂皇 阅读(1792) 评论(0) 推荐(0)

2013年7月8日

摘要: TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有 DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。TCP的几次握手就是通过这样的ACK表现出来的。但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。RST一般是在FIN之后 阅读全文
posted @ 2013-07-08 15:55 冠冕堂皇 阅读(323) 评论(0) 推荐(0)

摘要: 源码源码2:添加了IP地址、断开等的设置框。来源:http://www.cnblogs.com/fujinliang/archive/2012/06/20/2557064.html异步TCP和同步TCP类似,和其他所有的异步调用一样:几个基本的异步调用.AsyncCallback委托AsyncCallback委托用于引用异步操作完成时调用的回调方法。在异步操作方式下,由于程序可以在启动异步操作后继续执行其他代码,因此必须有一种机制,以保证该异步操作完成时能及时通知调用者。这种机制可以通过AsyncCallback委托实现。异步操作的每一个方法都有一个Begin…方法和End…方法,例如Begi 阅读全文
posted @ 2013-07-08 13:38 冠冕堂皇 阅读(326) 评论(0) 推荐(0)

2013年7月4日

摘要: 来自:http://www.cnblogs.com/xiaoyusmile/archive/2011/12/08/2280925.html源码下载在c#中,event与delegate是两个非常重要的概念。因为在Windows应用程序中,对事件的使用非常频繁,而事件的实现依赖于delegate。 下面是对网上一些比较好的关于delegage的资料的整理,以及自己的一些想法。委托概述委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的。委托的类型由委托的名称定义。一旦为委托分配了方法,委托将与该方法具有完全相同的行 阅读全文
posted @ 2013-07-04 09:02 冠冕堂皇 阅读(305) 评论(0) 推荐(0)

2013年7月3日

摘要: http://www.cnblogs.com/heyuquan/archive/2013/03/22/2976420.html传送门:异步编程系列目录……大部分开发人员,在开发多线程应用程序时,都是使用ThreadPool的QueueUserWorkItem方法来发起一次简单的异步操作。然而,这个技术存在许多限制。最大的问题是没有一个内建的机制让你知道操作在什么时候完成,也没有一个机制在操作完成时获得一个返回值。为了克服这些限制(并解决其他一些问题),Microsoft引入了三种异步编程模式:.NET1.0异步编程模型(APM),基于IAsyncResult接口实现。.NET2.0基于事件的异 阅读全文
posted @ 2013-07-03 15:03 冠冕堂皇 阅读(443) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 11 下一页