随笔分类 - C#
摘要:FileStream Read File [C#]This example shows how to safely read file using FileStream in C#. To be sure the whole file is correctly read, you should ca...
阅读全文
摘要:1、循环读取啊,byte[]可以定义为1024或者2049等等,不要超过int的maxvalue就可以。然后取出来操作完再去取。 1 FileStream stream = new FileStream(path); 2 byte[] writeData = new byte[8192]; 3 ...
阅读全文
摘要:try里面是执行代码,其中的代码"可能"产生异常.catch是对产生异常后的处理代码,可以抛出异常,也可以显示异常,也可以弹出某中提示,总之catch里是任何代码都行,如果你知道这钟异常产生的原因,可以打印此原因,也可以对此原因进行相应的处理,同时可以为多个catch,每个catch(异常类型) ...
阅读全文
摘要:C#计算文件的MD5值实例 MD5 是 Message Digest Algorithm 5(信息摘要算法)的缩写,MD5 一种散列(Hash)技术,广泛用于加密、解密、数据签名和数据完整性校验等方面。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都可...
阅读全文
摘要:备注哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。加密哈希函数有这样一个属性:在计算不大可能找到散列为相同的值的两个不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。数据的少量更改会在哈希值中产生不可预知的大量更改。MD5 算法的哈希值大小为 128 位。MD...
阅读全文
摘要:Socket提供了众多的属性,还提供了SetSocketOption方法来设置各种选项,对.NET网络应用程序的数据通讯进行“微调”。 Socket的功能出奇地强大,在.NET平台上,它支持以下四种典型的编程模式:(1) 居于阻塞模式的Socket编程(单线程或多线程的),每个线程处理一个客户端连接(2)“非阻塞”模式的Socket编程,这是早期UNIX为提升网络应用程序性能而采用的编程模式,出于兼容和方便移植原有程序的目的而保留,建议新开发的.NET网络程序不要再使用。(3) 使用IAsyncResult的异步编程模式:Socket类提供有一堆的“BeginXXX/EndXXX”方法实现..
阅读全文
摘要:FlowLayoutPanel flowLayoutPanel1 = new FlowLayoutPanel();for (int i = 0; i < 9; i++){ Button btn = new Button(); btn.Height = 100; btn.Width = 100; btn.Cursor = Cursors.Hand; btn.Name = btn.Text = "button" + (i + 1); flowLayoutPanel1.Dock = DockStyle.Left; flowLayoutPanel1.Width = 330;
阅读全文
摘要:基本没有问题,传输效率很高,缺点如博主所说,cpu占用问题,估计是浪费在指令、校验和判断上了,如果接收到我的文件用异步写入,应该也会减少点cpu时间。另外,博主可以尝试一下用md5校验,虽然有16字节,但是比crc32的效率快很多,cpu占用也少,在我的机器上实测,crc32,校验一个byte[],4兆字节用时7毫秒,400兆字节用时190多毫秒,而md5校验同样的字节数,分别用0毫秒和60多毫秒。0毫秒就是还没到1毫秒就完成了呵呵。我计时的方法是在computeHash之前timer.start(),之后stop,应该算精确的。期待与各位精通socket的朋友交流,goodies.qq@gm
阅读全文
摘要:ASCII方式:一个英文字母占一个字节,不能保存汉字;UTF8方式:一个英文字母占一个字节,一个汉字占三个字节;unicode方式:一个英文字母和一个汉字都占两个字节。基于TCP的Socket服务端:1、客户端以UTF8编码发送数据,假如发送的数据是汉字的情况下 服务端进行接收的时候,接收的缓冲区的长度必须至少大于等于3个字节。 byte[] buffer = new byte[length] // length的长度>=32、客户端以unicode编码发送数据,假如发送的数据是汉字的情况下 服务端进行接收的时候,接收的缓冲区的长度必须至少大于等于2个字节 byte[] bu...
阅读全文
摘要: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.
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要: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操作符一样,两者都可以用来测试某个对象的实例是否属于...
阅读全文
摘要:委托是一个类,它定义了一种方法类型,使得方法可以像其他普通类型一样作为参数被传递,但它与普通类型的区别是,可以将多个方法实例绑定到一个委托实例上,调用的时候,依次执行。委托带来的好处是,提升程序的可扩展性,解决if/else(或Switch)的问题。用到委托的地方: 当涉及到针对某一相同的输入,需要根据情况去执行不同的逻辑或产生不同的输出时,通常会需要if/else或者switch来实现,可以考虑引入委托。事件实际是委托的一个封装,当把一个委托定义为某个类的成员时,如果声明为public又恐暴露给客户端随意更改,违背了封装性,声明为private,又违背了给客户端使用的本意,故而采用和普通类型
阅读全文
摘要:下面的过程演示了如何将符合标准 .NET Framework 模式的事件添加到您自己的类和结构中。.NET Framework 类库中的所有事件均基于EventHandler委托,定义如下:public delegate void EventHandler(object sender, EventArgs e);注意.NET Framework 2.0 引入了此委托的一个泛型版本,即EventHandler<T>。下面的示例显示如何使用这两种版本。虽然您定义的类中的事件可采用任何有效委托类型(包括会返回值的委托),但是,通常建议您使用EventHandler让事件采用 .NET F
阅读全文
摘要:jsp页面:View Code 1//查询2functionsearch(){3varprojectId=$("#projIDSort").val();45varvoltageLevel=$("#voltageSort").val();6varequipCate=$("#equCateSort").val();78varurl="$(ctx)/projectDataQueryAction!searchProjectEquInfo.action?projectId="9+encodeURIComponent(proj
阅读全文
浙公网安备 33010602011771号