代码改变世界

[置顶]封装Socket.BeginReceive/EndReceive以支持Timeout

2012-08-13 23:16 by dytes, 3230 阅读, 收藏, 编辑
摘要: Socket .NET中的Socket类提供了网络通信常用的方法,分别提供了同步和异步两个版本,其中异步的实现是基于APM异步模式实现,即BeginXXX/EndXXX的方式。异步方法由于其非阻塞的特性,在需考虑程序性能和伸缩性的情况下,一般会选择使用异步方法。但使用过Socket提供的异步方法的同学,应该都会注意到了Socket的异步方法是无法设置Timeout的。以Receive操作为例,Socket提供了一个ReceiveTimeout属性,但该属性设置的是同步版本的Socket.Receive()方法的Timeout值,该设置对异步的Socket.BeginReceive()无效:如.阅读全文

[置顶].NET平台SNMP协议协议栈比较

2012-05-18 16:55 by dytes, 1474 阅读, 收藏, 编辑
摘要: 项目之前使用WinSNMP来实现与SNMP设备的通信,因其不支持SNMPv3,不能满足目前的需求,故需要寻找新的SNMP协议栈。对一些列.NET平台上可用的协议栈在以下几个方面进行了比较: 1. SNMPv3支持; 2. 支持IPv6; 3. .NET平台/C#实现; 4. 价格/版权 5. 功能稳定 6. 文档充足 7. 源代码(可选)各个协议栈特点 1. #SNMP #SNMP是一个开源的SNMP协议栈实现,基于.NET/C#开发实现。该协议栈采用的LGPL开源协议,可以在商业软件中以链接库的方式使用。该协议栈支持SNMPv3和IPv6,功能完整,测试完全,文档充足。另外...阅读全文

封装Socket.BeginReceive/EndReceive以支持Timeout

2012-08-13 23:16 by dytes, 3230 阅读, 收藏, 编辑
摘要: Socket .NET中的Socket类提供了网络通信常用的方法,分别提供了同步和异步两个版本,其中异步的实现是基于APM异步模式实现,即BeginXXX/EndXXX的方式。异步方法由于其非阻塞的特性,在需考虑程序性能和伸缩性的情况下,一般会选择使用异步方法。但使用过Socket提供的异步方法的同学,应该都会注意到了Socket的异步方法是无法设置Timeout的。以Receive操作为例,Socket提供了一个ReceiveTimeout属性,但该属性设置的是同步版本的Socket.Receive()方法的Timeout值,该设置对异步的Socket.BeginReceive()无效:如.阅读全文

[总结] 反射动态创建类型实例

2012-06-29 10:34 by dytes, 2250 阅读, 收藏, 编辑
摘要: .NET中除了构造函数外,还有多种方式可以创建类型的实例。下面总结了几种常见的通过反射创建类型实例的方法。假设我们需要创建有这样一个类型的实例:public class Employee{ public String Name { get; set; } public Employee(String name) { Name = name; } public Employee () { } public void Say(String greeting) { Console.WriteLine(String.Fo...阅读全文

.NET平台SNMP协议协议栈比较

2012-05-18 16:55 by dytes, 1474 阅读, 收藏, 编辑
摘要: 项目之前使用WinSNMP来实现与SNMP设备的通信,因其不支持SNMPv3,不能满足目前的需求,故需要寻找新的SNMP协议栈。对一些列.NET平台上可用的协议栈在以下几个方面进行了比较: 1. SNMPv3支持; 2. 支持IPv6; 3. .NET平台/C#实现; 4. 价格/版权 5. 功能稳定 6. 文档充足 7. 源代码(可选)各个协议栈特点 1. #SNMP #SNMP是一个开源的SNMP协议栈实现,基于.NET/C#开发实现。该协议栈采用的LGPL开源协议,可以在商业软件中以链接库的方式使用。该协议栈支持SNMPv3和IPv6,功能完整,测试完全,文档充足。另外...阅读全文

Thead.Join()和Thread.Sleep()

2010-12-30 23:04 by dytes, 1581 阅读, 收藏, 编辑
摘要: Thead.Join()和Thread.Sleep()C#中Thread类包含的两个常用方法:实例方法Join()和静态方法Sleep(),对于Join()的使用以及和Sleep()的区别一直比较迷糊,小结一下。Thread.Join()阻塞调用线程,直至某个线程终止。在此期间,被阻塞线程继续执行标准的COM和SendMessage消息泵。该方法使线程状态包含ThreadState.SleepWaitJoin.该方法可以用来确认某个线程是否结束。如果线程已经结束,则该方法立即返回,否则阻塞直至线程结束。在某些需要等待其他线程执行结束后,继续后续操作时,可以使用该方法。该方法有2个带参的重载方法阅读全文

JQuery学习笔记(二)Ajax操作

2010-01-02 19:34 by dytes, 1565 阅读, 收藏, 编辑
摘要: JQuery提供了Ajax的实现,使用这些方法能够快速的为页面添加Ajax特性,使页面具有更强的交互性,同时也避免了一次次的PostBack,提高页面的可用性。 下面是jQuery提供的几个用于ajax操作的方法。Ajax 方法1 jQuery.ajax(options) 这个方法是jQuery对Ajax最基础的实现。jQuery提供的其它Ajax方法都是在内部调用jQuery.ajax()来实现...阅读全文

<译>修改ASP.NET程序运行帐号

2009-11-21 13:10 by dytes, 876 阅读, 收藏, 编辑
摘要: 在个人所经历的几个ASP.NET项目中经常被权限问题困扰,大部分时间都是因为站点的运行帐号配置有问题。偶然发现这篇文章,感觉对ASP.NET中各种帐号的配置及使用讲解比较透彻,读来受益匪浅,所以翻译过来跟大家分享。这篇是本人第一次翻译,有不准确或者错误的地方,大家多指点。背景知识 所有应用程序在进程内运行。在IIS6.0中,ASP.NET Web程序运行在IIS工作进程(w3wp.exe)内。在默...阅读全文

JQuery学习笔记(-) 初识JQuery

2009-11-09 12:22 by dytes, 217 阅读, 收藏, 编辑
摘要: 这个系列是个人JQuery学习笔记,放到博客上便于以后自己参考以及回顾。本篇是系列第一篇,主要是一些关于JQuery的基本知识,概念,以及如何使用JQuery。1 JQuery 介绍JQuery是一个强大的javascript类库,提供了Web开发中经常使用的一些功能,例如document traversing, event handling,animating 以及Ajax interactio...阅读全文

自定义MDI 子窗体的Layout方式

2009-02-21 12:15 by dytes, 1912 阅读, 收藏, 编辑
摘要: MDI Form默认提供了4种Layout的方式。但有些情况下,这几种Layout的方式并不能满足需求。这时我们就需要自定义MDI子窗体的Layout方式,主要也就是手动设置子窗体的Size和Location属性。  在设置子窗体的Layout之前,我们先要找出子窗体的父容器的ClientSize,然后根据ClientSize的大小以及自己需要的Layout方式,设置子窗体的Size和Locati...阅读全文

利用反射排序泛型List

2009-01-06 19:52 by dytes, 1595 阅读, 收藏, 编辑
摘要: Normal 0 false false false MicrosoftInternetExplorer4   在最近一个项目中,有需求要对页面中所有的gridview添加排序功能。由于gridview的数据源绑定的是一个集合类List,而不是DataTable,所以无法使用DataView排序功能。另外,不同的gridview显示的是不同的业务数据,为了重用代码只能添加一个泛型方法,使用该...阅读全文

判断数字键、字母键、字符键的javascript函数

2009-01-06 18:42 by dytes, 501 阅读, 收藏, 编辑
摘要: [代码]阅读全文