10 2012 档案

摘要:我们知道C#是一门虚拟机语言,在C#编译器将C#代码编译成IL代码后,运行在.NET CLR(公共语言运行时)中,运行程序是CLR通过调用JIT(即时编译器)来将IL代动态即时编译成可执行的机器码。在CLR中有一个非常重要的概念:CLR GC(Garbage Collector,垃圾收集器),GC自动为我们的应用程序进... 阅读全文
posted @ 2012-10-22 11:09 gyzhao 阅读(3992) 评论(20) 推荐(7) 编辑
摘要:TCP 协议(Transmission Control Protocol,传输控制协议)是TCP/IP体系中面向连接(connection oriented)的传输层(transport layer),TCP协议能够检测和恢复IP层提供的主机到主机的信道中可能发生的报文丢失、重复以及其他错误。由于TCP协议是一种面向连接协议... 阅读全文
posted @ 2012-10-18 09:03 gyzhao 阅读(22814) 评论(20) 推荐(26) 编辑
摘要:经过前面基础知识作为背景,现在对Socket编程进行进一步的学习。在 System.Net.Socket 命名空间提供了Socket类,利用该类我们可以直接编写Socket的客户端和服务的的程序。但是直接使用Socket类编写Socket程序会比较麻烦、而且容易出错,所以.NET为我们提供了进一步封... 阅读全文
posted @ 2012-10-15 09:24 gyzhao 阅读(20551) 评论(26) 推荐(39) 编辑
摘要:在网络通信中,很多情况下:比如说QQ聊天,通讯双方直接传递的都是字符信息。但是字符信息并不能够直接通过网络传输,这些字符集必须先转换成一个字节序列后才能够在网络中传输,于是这里就产生了编码和解码的概念。对于Unicode字符来说,编码是指将一组Unicode字符转换为... 阅读全文
posted @ 2012-10-13 11:19 gyzhao 阅读(9548) 评论(11) 推荐(19) 编辑
摘要:通过前面的笔记我们可以知道:一个客户端想要发起一次通信,先决条件就是需要知道运行着服务器端程序的主机的IP地址是多少,端口号是多少。然后我们才能够通过这个地址向服务器特定的应用程序发送信息。对于网络上的两台计算机来说,用户操作的计算机称为本地主机,与该计算机... 阅读全文
posted @ 2012-10-11 17:38 gyzhao 阅读(10660) 评论(27) 推荐(26) 编辑
摘要:计算机程序能够相互联网,相互通讯,这使一切都成为可能,这也是当今互联网存在的基础。那么程序是如何通过网络相互通信的呢?这就是我记录这系列的笔记的原因。C#语言从一开始就是为了互联网而设计的,它为实现程序的相互通信提供了许多有用API,这类应用编程接口被称为套接字... 阅读全文
posted @ 2012-10-10 19:34 gyzhao 阅读(8948) 评论(20) 推荐(40) 编辑
摘要:在应用程序开发过程中,开发者都力求写出更加高效的代码。但是当你想手工为C#编译器优化代码时,你的种种优化可能反倒会阻碍JIT进行更加高效的优化。因此,我们最好尽可能的写出最清晰的代码,将优化工作交给JIT编译器去完成。在.NET平台下开发程序的开发者都应该知道... 阅读全文
posted @ 2012-10-08 23:14 gyzhao 阅读(2196) 评论(5) 推荐(6) 编辑
摘要:C#4.0 引入了具名参数(MSDN翻译为“命名实参”,个人认为具名参数更形象,可选参数亦是)和可选参数(可选实参)。客户端代码使用具名参数意味着:方法中的参数名称也成为了公有接口的一部分。假如修改公有参数的名称将有可能破坏调用者的代码。这意味着:调用者应该尽可... 阅读全文
posted @ 2012-10-07 21:54 gyzhao 阅读(2932) 评论(2) 推荐(2) 编辑