代码改变世界

[置顶]理解TCP为什么需要进行三次握手(白话)

2012-11-05 16:02 by 雨林, 30030 阅读, 47 推荐, 收藏, 编辑
摘要:首先简单介绍一下TCP三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。通过这样的三次握手,客户端与服务端建立起 阅读全文

数字证书中签名和指纹的区别

2019-08-27 13:37 by 雨林, 3478 阅读, 0 推荐, 收藏, 编辑
摘要:签名和指纹都是数字证书的标识,二者有什么区别呢? 国内没有人解释清楚了这个问题 下面是老外给的答案: 签名和指纹完全是两码事。对于证书的强度拇指指纹是无关的,但签名是相关的。 证书的签名是颁发者通过签名证书创建的东西。TLS堆栈(浏览器内部)使用此签名来验证信任链。这里使用一个强大的算法很重要,这样 阅读全文

数字证书原理

2019-08-27 09:28 by 雨林, 372 阅读, 0 推荐, 收藏, 编辑
摘要:转载自(https://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html) 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释 阅读全文

.net程序调试一:快速定位异常

2014-06-14 22:34 by 雨林, 7263 阅读, 76 推荐, 收藏, 编辑
摘要:作为一个程序员,解BUG是我们工作中常做的工作,甚至可以说解决问题能力是一个人工作能力的重要体现。因为这体现了一个程序员的技术水平、技术深度、经验等等。那么在我们解决BUG的过程中,定位问题是非常重要的。有句话叫"发现问题是解决问题的一半。本文讲述就快速定位异常(专指.NET程序异常)的方法。包括在... 阅读全文

java基础

2013-10-08 15:42 by 雨林, 325 阅读, 0 推荐, 收藏, 编辑
摘要:1:JDK 全称Java Develop Kit,Java开发工具包。类似微软的 Windows SDK。2:JRE 全称Java Runtime Environment,Java运行环境,类似.net的CLR。 通常JRE包括在JDK中。如果我们仅仅是运行Java程序而不是从事Java开发,就可以直接下载JRE安装。3:JavaSE(Java Standard Edition) Java标准版,主要用于开发桌面应用程序和小程序。 JavaEE(Java Enterpise Edtion) Java企业版,用户企业级开发,Web程序开发。 JavaME(Java Micro Edition). 阅读全文

Silverlight 应用程序安全模型

2011-11-14 15:50 by 雨林, 868 阅读, 1 推荐, 收藏, 编辑
摘要:本文讲解Silverlight 应用程序安全模型,大部分的内容都是来自MSDN,但MSDN上翻译的实在是很生涩,而且还有错误。本文以通俗易懂的文字重新翻译一下,以帮助大家理解。silverlight 应用程序运行环境 Silverlight 应用程序在部分信任的环境(也叫“沙盒”)内运行。这里面有个概念,什么是信任环境?什么又是部分信任环境?答案是:运行本地计算机上代码的环境就是信任环境(如机器码的运行环境本地计算机,.NET的IL代码的运行环境CLR),运行(从本地计算机外部加载的)代码的环境就是部分信任环境(如javascript脚本的运行环境是浏览器,Silverlight应用程序的运. 阅读全文

理解TCP/IP协议

2011-11-03 11:23 by 雨林, 1403 阅读, 1 推荐, 收藏, 编辑
摘要:TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议。单从TCP/IP协议这个名称看,好多人误以为它是一个协议。其实TCP/IP并不是一个协议,而是一个协议族,这个族里面括很多协议,其中比较主要的是TCP协议和IP协议,所以简称为TCP/IP协议。TCP/IP协议由4层组成,从下到上分别是,网络接口层,网络层,传输层,应用层。这里有的朋友可能会有疑问,开放系统互联参考模型(OSI)不是有7层么,这个TCP/IP协议怎么只有4层?其实这个是不矛盾的,因为OSI参考模型是一个理论模型,而TCP/ 阅读全文

c# 深拷贝各种实现

2011-10-28 16:27 by 雨林, 11106 阅读, 4 推荐, 收藏, 编辑
摘要:1:利用反射实现 1 public static T DeepCopy<T>(T obj) 2 { 3 //如果是字符串或值类型则直接返回 4 if (obj is string || obj.GetType().IsValueType) return obj; 5 6 object retval = Activator.CreateInstance(obj.GetType()); 7 FieldInfo[] fields = obj.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPubli... 阅读全文

WCF ria 远程服务器返回:Not Found

2011-10-11 17:12 by 雨林, 528 阅读, 0 推荐, 收藏, 编辑
摘要:使用WCF ria Services搭建silverlight程序,系统运行调用WCF ria服务的时候出现错误"远程服务器返回:Not Found",在网上查找了半天没查出来结果,后来发现问题是承载silverlight项目的Web项目需要引用WCF ria Servicess类库中得Web项目。添加引用之后就好了。项目架构如下图:BusinessLibrary文件夹就是WCF ria Servicess类库将OnlineReport.Web项目引用BusinessLibrary.Web项目就OK了。 阅读全文

前台线程和后台线程

2011-08-30 15:20 by 雨林, 2334 阅读, 0 推荐, 收藏, 编辑
摘要:前台线程和后台线程的区别和联系:1、后台线程不会阻止进程的终止。属于某个进程的所有前台线程都终止后,该进程就会被终止。所有剩余的后台线程都会停止且不会完成。2、可以在任何时候将前台线程修改为后台线程,方式是设置Thread.IsBackground 属性。3、不管是前台线程还是后台线程,如果线程内出现了异常,都会导致进程的终止。4、托管线程池中的线程都是后台线程,使用new Thread方式创建的线程默认都是前台线程。下面做个小例子来证实一下,代码如下很简单: 1 class Program 2 { 3 static AutoResetEvent autoEvent =new Auto... 阅读全文

Silverlitht数据输入验证工具类

2011-08-26 17:55 by 雨林, 405 阅读, 0 推荐, 收藏, 编辑
摘要:提供一个工具类,用于进行Silverlitht数据输入验证。原理:在页面提交时,对页面的输入项进行验证。用法很简单,把工具类文件添加到你的项目中,使用时不需要在xaml页面进行绑定,直接在后台cs页面就简单的几行代码就可以。目前只能进行非空验证,和数值验证,不过添加其他验证也是很容易的。调用示例如下:前台xaml代码 <StackPanel Margin="5"> <StackPanel Orientation="Horizontal" Margin="5"> <TextBlock Text=" 阅读全文