摘要: ASCII方式:一个英文字母占一个字节,不能保存汉字;UTF8方式:一个英文字母占一个字节,一个汉字占三个字节;unicode方式:一个英文字母和一个汉字都占两个字节。基于TCP的Socket服务端:1、客户端以UTF8编码发送数据,假如发送的数据是汉字的情况下 服务端进行接收的时候,接收的缓冲区的长度必须至少大于等于3个字节。 byte[] buffer = new byte[length] // length的长度>=32、客户端以unicode编码发送数据,假如发送的数据是汉字的情况下 服务端进行接收的时候,接收的缓冲区的长度必须至少大于等于2个字节 byte[] bu... 阅读全文
posted @ 2013-09-11 16:57 朱煜 阅读(890) 评论(0) 推荐(0) 编辑
摘要: ConclusionAnd that's all there is to it! Here is how our client looks likeHere is how our server looks likeThat is all there is to the socket programming. 阅读全文
posted @ 2013-09-10 17:46 朱煜 阅读(244) 评论(0) 推荐(0) 编辑
摘要: Server SideIf you have understood whatever I have described so far, you will easily understand the Server part of the socket application. So far we have been talking about a client making connection to a server and sending and receiving data.On the Server end, the application has to send and receive 阅读全文
posted @ 2013-09-10 17:45 朱煜 阅读(309) 评论(0) 推荐(0) 编辑
摘要: Now lets say you have two sockets connecting to either two different servers or same server (which is perfectly valid) . One way is to create two different delegates and attach a different delegate to different BeginReceive function. What if you have 3 sockets or for that matter n sockets , this app 阅读全文
posted @ 2013-09-10 17:44 朱煜 阅读(324) 评论(0) 推荐(0) 编辑
摘要: Getting StartedYou can argue that one can overcome these shortcomings by multithreading meaning that one can spawn a new thread and let that thread do the polling which then notifies the main thread of the data. This concept could work well, but even if you create a new thread it would require your 阅读全文
posted @ 2013-09-10 17:42 朱煜 阅读(318) 评论(0) 推荐(0) 编辑
摘要: This is the second part of the previous article about the socket programming. In the earlier article we created a client but that client used to make blocking IO calls ( Receive ) to read data at regular intervals (via clicking the Rx button). But as I said in my earlier article, that model does not 阅读全文
posted @ 2013-09-10 17:41 朱煜 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1.如:BaseItem item=sender as BaseItem; as指将sender显示转换BaseItem类型 相当于: BaseItem item=(BaseItem)sender ;as:把对象转化成兼容的类型,与强制转化有些类似. 2.如:if(sender is BaseItem) {} is指判断sender是不是BaseItem类型 是返回true,不是返回false; is: 名义上是判断类型,但主要用在父类子类转换时判断转换是否成功用来判断类型之间是否兼容C#中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于... 阅读全文
posted @ 2013-04-28 10:26 朱煜 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 委托是一个类,它定义了一种方法类型,使得方法可以像其他普通类型一样作为参数被传递,但它与普通类型的区别是,可以将多个方法实例绑定到一个委托实例上,调用的时候,依次执行。委托带来的好处是,提升程序的可扩展性,解决if/else(或Switch)的问题。用到委托的地方: 当涉及到针对某一相同的输入,需要根据情况去执行不同的逻辑或产生不同的输出时,通常会需要if/else或者switch来实现,可以考虑引入委托。事件实际是委托的一个封装,当把一个委托定义为某个类的成员时,如果声明为public又恐暴露给客户端随意更改,违背了封装性,声明为private,又违背了给客户端使用的本意,故而采用和普通类型 阅读全文
posted @ 2013-04-26 17:13 朱煜 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 下面的过程演示了如何将符合标准 .NET Framework 模式的事件添加到您自己的类和结构中。.NET Framework 类库中的所有事件均基于EventHandler委托,定义如下:public delegate void EventHandler(object sender, EventArgs e);注意.NET Framework 2.0 引入了此委托的一个泛型版本,即EventHandler<T>。下面的示例显示如何使用这两种版本。虽然您定义的类中的事件可采用任何有效委托类型(包括会返回值的委托),但是,通常建议您使用EventHandler让事件采用 .NET F 阅读全文
posted @ 2013-04-26 15:48 朱煜 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 所有的硕士学位证书都是由国务院学位委员会统一颁发。在职研究生和全日制颁发的硕士学位没有任何区别。硕士学位的查询机构为教育部学位与研究生教育发展中心(全国学位与研究生教育数据中心) ,查询网址为:http://www.cdgdc.edu.cn 详细查询方式如下:认证需要提供的材料:学位证书认证,需提交学位证书复印件一式两份;填写《中国学位证书认证申请表》。认证费用:中文认证报告 210元/项;备份认证报告 50元/项;为保证准确快捷送达,认证报告等材料将通过EMS方式寄送,邮寄费用按EMS实际标准收取。认证机构联系方式:单位名称:教育部学位与研究生教育发展中心认证处地址:北京市海淀区王庄路1号同 阅读全文
posted @ 2013-01-23 11:30 朱煜 阅读(690) 评论(0) 推荐(0) 编辑