﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-陋室铭</title><link>http://www.cnblogs.com/cuihongyu3503319/</link><description>                永远也不要停下学习的脚步(大道至简至易)      </description><language>zh-cn</language><lastBuildDate>Sat, 04 Jul 2009 20:27:56 GMT</lastBuildDate><pubDate>Sat, 04 Jul 2009 20:27:56 GMT</pubDate><ttl>60</ttl><item><title>为了面向对象而对象</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/04/1516877.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Sat, 04 Jul 2009 08:52:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/04/1516877.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1516877.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/04/1516877.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1516877.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1516877.html</trackback:ping><description><![CDATA[<p>初学OO者,总是搞不清楚类，对象，接口之类的东西，而绕很多弯路</p>
<p>实际在这种情况下，莫不如先走个极端的路，就是把所有的东西都对象化了，慢慢你就会体会他们的优缺点</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1516877.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47970/" target="_blank">19岁天才黑客发布首个iPhone 3GS破解软件</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>游戏外挂的一些原理</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/04/1516659.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 03 Jul 2009 18:18:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/04/1516659.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1516659.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/04/1516659.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1516659.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1516659.html</trackback:ping><description><![CDATA[<p>1.通过游戏客户端自身</p>
<p>键盘操作，鼠标操作，钩子跨进程修改内存数据，通过游戏客户端自己向游戏服务器发包</p>
<p>2。直接入侵服务器，一般只有做游戏的人自己先出外挂</p>
<p>（1）服务器肯定开个端口接受数据，就当是socket，但不是匿名的，你向这个端口发包，服务器需要验证，估计 每个机器安装完了 会随机生成个验证密钥，你也需要这个验证密钥</p>
<p>（2）第二步你还要知道他那边是怎么处理的</p>
<p>（3）第三步 就是数据结构</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1516659.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47970/" target="_blank">19岁天才黑客发布首个iPhone 3GS破解软件</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>学习asp.net比较完整的流程(转)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/03/1516609.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 03 Jul 2009 14:39:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/03/1516609.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1516609.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/03/1516609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1516609.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1516609.html</trackback:ping><description><![CDATA[<div class="Content">如果你已经有较多的面向对象开发经验，跳过以下这两步： <br />　　第一步　掌握一门.NET面向对象语言，C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术，不懂OO，那绝对学不下去! <br />　　第二步　对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework。ASP.NET是建构在.NET Framework之上的技术，你对.NET Framework了解得越深，学习ASP.NET就越快。 举个例子：下面简单列出几个对掌握ASP.NET非常重要的概念： 对象的内存模型，委托，事件，多线程，程序集和应用程序域，安全模型 .NET Framework当然还有许多其它的东西，但不理解与把握清楚上述这些东西，是很难真正把握ASP.NET的。 出于急迫的心情与现实的考虑，不少人没有扎实的面向对象基础就想直接学习ASP.NET，其结果只能是欲速则不达。 在具备了OO基础之后，以下是具体的学习ASP.NET技术步骤。 <br />　　第一步：学习HTML与CSS <br />　　这并不需要去学一大堆的诸如Dreamweaver，Firework之类的各种网页设计工具，关键是理解HTML网页嵌套的block结构与CSS的box模型。许多ASP.NET控件最后都必须转化为HTML。而且，div+CSS是当前主流的网页布局模型。 学习这部分时，关键在于理解概念，而不需要将精力花在美化页面的许多技巧上，那是网站美工的工作，不是程序员的工作。 <br />　　第二步：学习JavaScript <br />　　JavaScript不是Java，它主要运行于浏览器端。可以完成许多工作，功能也很强大：比如它将客户端网页中的HTML元素看成一棵树，可以编写代码访问并修改树节点，动态生成新的HTML代码，从而达到动态修改网页显示特性的目的。 <br />　　JavaScript在目前的网站开发中用得很多，非常重要。 <br />　　另外，它也是目前非常流行的AJAX技术的基础。 <br />　　第三步：学习计算机网络原理 <br />　　找一本大学&lt;计算机网络&gt;教材，重点看看它的有关互联网的部分，了解一些域名解析和HTTP协议等知识。这是进行互联网开发的理论基础。 <br />　　第四步：学习ASP.NET表示层技术，会设计Web页面 <br />　　需要结合先前打好的面向对象技术的基础，至少掌握以下内容： <br />　　(1) 各种Web控件的使用方法， <br />　　(2) 理解信息在网页中的传送方式，比如Cookie，ViewState，Session等的使用。 <br />　　(3) ASP.NET应用程序与网页的生命周期，以及相关对象(比如httpcontext，response，request)的用途。 <br />　　(4) ASP.NET实现事件驱动的内幕 <br />　　(5) 自定义用户控件 <br />　　再次强调一下，没有OO基础，很难掌握上述技术，就只能被这些东东牵着鼻子走了，会很被动。 <br />　　第五步　掌握数据库技术 <br />　　具体地说，要学习以下内容： <br />　　(1) 学会使用SQL　Server 2005：不要求精通它的各种工具与管理配置技术，但至少知道如何连接，如何建表，如何创建存储过程 <br />　　(2) 学习ADO.NET，掌握使用代码人工访问数据库(别用VS2005的向导)的方法 <br />　　(3) 学习数据绑定控件的使用 <br />　　第六步　理解多层架构 <br />　　这时，先前在OO学习阶段涉及到的程序集与应用程序域等就派上用场了，现在，网站架构大多采用多层架构：表示层、业务逻辑层、数据存取层以及数据库本身。 <br />　　可以先上网找一此多层架构的资料看，再找一个现成的比较复杂的开源ASP.NET项目分析一下其架构就差不多了。基本上都是一个套路，到处应用。 <br />　　有的朋友问：学习架构是不是必须学习设计模式。 <br />　　我的看法是：不必!当然，你如果学习过设计模式，那当然更好。但在实际开发中，如果只想着机械地套用某种模式，反而起不到好的结果。我的观点：在学习设计模式时要多思多悟，其思想就会渐渐地融入你的大脑，在真实的设计实践中，忘掉所有的写在书上的模式，一切从实际出发，相信你的直觉，只要达到设计要求的方案就是可行的方案，事实上，你这样做了之后，回过头来再看，会发现你的设计往往暗合设计模式的理论。 <br />　　第七步　学习XML与Web Service <br />　　先了解XML的基础知识，找本讲XML的书看一下就差不多了，然后，再学习Web Service。Web Service其实可类比为远程方法调用(以XML格式表达的调用信息)。 <br />　　学 到了这里，如果你还有兴趣，不妨再去看看SOA，不过SOA的资料都是理论与概念，看起来比较郁闷，而且离实际开发可能比较远。所以，这是可选项。 <br />　　第八步　学习AJAX <br />　　学习AJAX的主要目的是创建具有更丰富特性的Web表示层，而经过前面七步的学习，到此再学习AJAX已水到渠成，所有的基础都已具备，不会有太大的问题了。 <br />　　在基础未具备的前提下直接学AJAX，就象&#8220;浮沙之上筑高台&#8221;，所以，将AJAX的学习次序安排在这里。 <br />　　第九步　学习RIA技术 <br />　　RIA：Rich internet application，可看成是将C/S与B/S优点合二为一的尝试。就具体技术来说，主要指微软的Silverlight(WPF_E)，毕竟前头一路行来都是微软路线。 <br />　　不过目前学习它主要是为了技术储备。估计此技术的普及需要2到3年的时间，因为预装Vista的机器今年才开始大卖。<br />本贴来自ZDNetChina中文社区 <a href="http://bbs.zdnet.com.cn/">http://bbs.zdnet.com.cn/</a> ,本贴地址：<a href="http://bbs.zdnet.com.cn/viewthread.php?tid=108315">http://bbs.zdnet.com.cn/viewthread.php?tid=108315</a></div>
<div class="Content">&nbsp;</div>
<div class="Content">&nbsp;</div>
<div class="Content"><span style="color: red">system.io socket 反射 序列化 GDI+ VML SVG</span></div><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1516609.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47969/" target="_blank">新浪邮箱大本营粉墨登场！Sina.cn开放注册</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>用javascript实现Base64编码(解决中文问题C#里解码) 转</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/03/1516269.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 03 Jul 2009 06:16:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/03/1516269.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1516269.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/03/1516269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1516269.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1516269.html</trackback:ping><description><![CDATA[摘要: 因javascript求出来的是Unicode要转换成Ansi后才能对它进行Base64编码//UnicodeAnsi.js文件//把Unicode转成Ansi和把Ansi转换成Unicodefunction UnicodeChr(){return '00A4,00A7,00A8,00B0,00B1,00B7,00D7,00E0,00E1,00E8,00E9,00EA,00EC,00ED,00F2&nbsp;&nbsp;<a href='http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/03/1516269.html'>阅读全文</a><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1516269.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47969/" target="_blank">新浪邮箱大本营粉墨登场！Sina.cn开放注册</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>C#序列化和转码</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515755.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 02 Jul 2009 10:12:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515755.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1515755.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515755.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1515755.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1515755.html</trackback:ping><description><![CDATA[<p>首先 我们写两个代码</p>
<p>&nbsp;</p>
<p>1.byte[] q=&nbsp; System.Text.Encoding.<span style="color: red">UTF8</span>.GetBytes("哈"); <br /><br />2. <br />MemoryStream stream = new MemoryStream(); <br />BinaryFormatter formatter = new BinaryFormatter(); <br />formatter.Serialize(stream, "哈"); <br />stream.Close(); <br />byte[] qq=stream.ToArray(); </p>
<p>第一个方法是把"哈"字符串转换成<span style="color: red">UTF8</span>码,第二个是序列化"哈"</p>
<p>不同之处在于</p>
<p>一.</p>
<p><span style="color: red">1是单纯的转码</span></p>
<p><span style="color: red">2是序列化"哈"这个字符串对象,一个对象包括很对内容(属性,方法,索引器等等)</span></p>
<p><span style="color: red">序列化对象就是把对象变成byte[]的格式,因为对象的成员很复杂,而且类型不同,所以变起来没有转码那么简单</span></p>
<p><span style="color: red">二.</span></p>
<p><font color="#ff0000">我们会发现,2并没有指定编码格式,难道序列化就不需要指定编码格式吗,那当然是不可能的,通过我实验当序列化对象时,把对象中数据成员的字符串转化为byte[]是按照<span style="color: red">UTF8</span>码来做的,其它类型我没有实验</font></p>
<p><font color="#ff0000"></font>&nbsp;</p>
<p><font color="#ff0000"><span style="color: #000000">那为什么要用<span style="color: red">UTF8</span>而不用</span><span style="color: #ff0000">Unicode?</span></font></p>
<p><font color="#ff0000"><span style="color: #000000">看一下 下面的解释</span></font></p>
<p>　<span style="color: red">UTF8</span>效率 <br />　　1.每个英文字母、数字所占的空间为1 Byte； <br />　　2.泛欧语系、斯拉夫语字母占2 Bytes； <br />　　3.汉字占3 Bytes。 <br />用Unicode的话,英文也变成2 Bytes了 <br />原来老美是为了照顾自己 而损失了汉语的效率,明白了了吧</p>
<p>由此可见UTF8对英文来说是个非常诱人的方案，但对中文来说则不太合算，无论用ANSI还是 Unicode/UCS2来编码都只用2 Bytes，但用UTF8则需要3 Bytes。 <br />　　以下是一些统计资料，显示用UTF8来储存文件每个字符所需的平均字节： <br />　　1.拉丁语系平均用1.1 Bytes； <br />　　2.希腊文、俄文、阿拉伯文和希伯莱文平均用1.7 Bytes； <br />　　3.其他大部份文字如中文、日文、韩文、Hindi(北印度语)用约3 Bytes； <br />　　4.用超过4 Bytes的都是些非常少用的文字符号。</p>
<p>&nbsp;</p>
<p><span style="color: red">一开始我用序列化的时候,我就很奇怪,为什么不用指定编码,原来不是没指定,而是序列化对象自身已经做好了算法,(有可能针对不同类型用了很多不同的编码,自定义很复杂,失去了意义,系统指定的最优化编码)并没有提供给外接指定编码的接口(可以自定义序列化,但不知道可不可以自定义序列化编码)</span></p>
<p>一家之言,不敢肯定是正确的,作为参考吧<br /></p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1515755.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47968/" target="_blank">IE市场份额首次跌破60%</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Base64编码</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515622.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 02 Jul 2009 08:46:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515622.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1515622.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1515622.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1515622.html</trackback:ping><description><![CDATA[<p>　Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一　</p>
<p>　 </p>
<table class="editorTable">
<tr>
<td class="editorTd" style="width: 66px"><strong>索引</strong></td>
<td class="editorTd" style="width: 66px"><strong>对应字符</strong></td>
<td class="editorTd"><strong>索引</strong></td>
<td class="editorTd" style="width: 66px"><strong>对应字符</strong></td>
<td class="editorTd" style="width: 66px"><strong>索引</strong></td>
<td class="editorTd" style="width: 66px"><strong>对应字符</strong></td>
<td class="editorTd" style="width: 66px"><strong>索引</strong></td>
<td class="editorTd" style="width: 66px"><strong>对应字符</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">0</td>
<td class="editorTd" style="width: 66px"><strong>A</strong></td>
<td class="editorTd">17</td>
<td class="editorTd" style="width: 66px"><strong>R</strong></td>
<td class="editorTd" style="width: 66px">34</td>
<td class="editorTd" style="width: 66px"><strong>i</strong></td>
<td class="editorTd" style="width: 66px">51</td>
<td class="editorTd" style="width: 66px"><strong>z</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">1</td>
<td class="editorTd" style="width: 66px"><strong>B</strong></td>
<td class="editorTd">18</td>
<td class="editorTd" style="width: 66px"><strong>S</strong></td>
<td class="editorTd" style="width: 66px">35</td>
<td class="editorTd" style="width: 66px"><strong>j</strong></td>
<td class="editorTd" style="width: 66px">52</td>
<td class="editorTd" style="width: 66px"><strong>0</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">2</td>
<td class="editorTd" style="width: 66px"><strong>C</strong></td>
<td class="editorTd">19</td>
<td class="editorTd" style="width: 66px"><strong>T</strong></td>
<td class="editorTd" style="width: 66px">36</td>
<td class="editorTd" style="width: 66px"><strong>k</strong></td>
<td class="editorTd" style="width: 66px">53</td>
<td class="editorTd" style="width: 66px"><strong>1</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">3</td>
<td class="editorTd" style="width: 66px"><strong>D</strong></td>
<td class="editorTd">20</td>
<td class="editorTd" style="width: 66px"><strong>U</strong></td>
<td class="editorTd" style="width: 66px">37</td>
<td class="editorTd" style="width: 66px"><strong>l</strong></td>
<td class="editorTd" style="width: 66px">54</td>
<td class="editorTd" style="width: 66px"><strong>2</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">4</td>
<td class="editorTd" style="width: 66px"><strong>E</strong></td>
<td class="editorTd">21</td>
<td class="editorTd" style="width: 66px"><strong>V</strong></td>
<td class="editorTd" style="width: 66px">38</td>
<td class="editorTd" style="width: 66px"><strong>m</strong></td>
<td class="editorTd" style="width: 66px">55</td>
<td class="editorTd" style="width: 66px"><strong>3</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">5</td>
<td class="editorTd" style="width: 66px"><strong>F</strong></td>
<td class="editorTd">22</td>
<td class="editorTd" style="width: 66px"><strong>W</strong></td>
<td class="editorTd" style="width: 66px">39</td>
<td class="editorTd" style="width: 66px"><strong>n</strong></td>
<td class="editorTd" style="width: 66px">56</td>
<td class="editorTd" style="width: 66px"><strong>4</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">6</td>
<td class="editorTd" style="width: 66px"><strong>G</strong></td>
<td class="editorTd">23</td>
<td class="editorTd" style="width: 66px"><strong>X</strong></td>
<td class="editorTd" style="width: 66px">40</td>
<td class="editorTd" style="width: 66px"><strong>o</strong></td>
<td class="editorTd" style="width: 66px">57</td>
<td class="editorTd" style="width: 66px"><strong>5</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">7</td>
<td class="editorTd" style="width: 66px"><strong>H</strong></td>
<td class="editorTd">24</td>
<td class="editorTd" style="width: 66px"><strong>Y</strong></td>
<td class="editorTd" style="width: 66px">41</td>
<td class="editorTd" style="width: 66px"><strong>p</strong></td>
<td class="editorTd" style="width: 66px">58</td>
<td class="editorTd" style="width: 66px"><strong>6</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">8</td>
<td class="editorTd" style="width: 66px"><strong>I</strong></td>
<td class="editorTd">25</td>
<td class="editorTd" style="width: 66px"><strong>Z</strong></td>
<td class="editorTd" style="width: 66px">42</td>
<td class="editorTd" style="width: 66px"><strong>q</strong></td>
<td class="editorTd" style="width: 66px">59</td>
<td class="editorTd" style="width: 66px"><strong>7</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">9</td>
<td class="editorTd" style="width: 66px"><strong>J</strong></td>
<td class="editorTd">26</td>
<td class="editorTd" style="width: 66px"><strong>a</strong></td>
<td class="editorTd" style="width: 66px">43</td>
<td class="editorTd" style="width: 66px"><strong>r</strong></td>
<td class="editorTd" style="width: 66px">60</td>
<td class="editorTd" style="width: 66px"><strong>8</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">10</td>
<td class="editorTd" style="width: 66px"><strong>K</strong></td>
<td class="editorTd" style="width: 66px; height: 20px">27</td>
<td class="editorTd" style="width: 66px"><strong>b</strong></td>
<td class="editorTd" style="width: 66px">44</td>
<td class="editorTd" style="width: 66px"><strong>s</strong></td>
<td class="editorTd" style="width: 66px">61</td>
<td class="editorTd" style="width: 66px"><strong>9</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">11</td>
<td class="editorTd" style="width: 66px"><strong>L</strong></td>
<td class="editorTd">28</td>
<td class="editorTd" style="width: 66px"><strong>c</strong></td>
<td class="editorTd" style="width: 66px">45</td>
<td class="editorTd" style="width: 66px"><strong>t</strong></td>
<td class="editorTd" style="width: 66px">62</td>
<td class="editorTd" style="width: 66px"><strong>+</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">12</td>
<td class="editorTd" style="width: 66px"><strong>M</strong></td>
<td class="editorTd">29</td>
<td class="editorTd" style="width: 66px"><strong>d</strong></td>
<td class="editorTd" style="width: 66px">46</td>
<td class="editorTd" style="width: 66px"><strong>u</strong></td>
<td class="editorTd" style="width: 66px">63</td>
<td class="editorTd" style="width: 66px"><strong>/</strong></td></tr>
<tr>
<td class="editorTd" style="width: 66px">13</td>
<td class="editorTd" style="width: 66px"><strong>N</strong></td>
<td class="editorTd">30</td>
<td class="editorTd" style="width: 66px"><strong>e</strong></td>
<td class="editorTd" style="width: 66px">47</td>
<td class="editorTd" style="width: 66px"><strong>v</strong></td>
<td class="editorTd" style="width: 66px">&nbsp;</td>
<td class="editorTd" style="width: 66px">&nbsp;</td></tr>
<tr>
<td class="editorTd" style="width: 66px">14</td>
<td class="editorTd" style="width: 66px"><strong>O</strong></td>
<td class="editorTd">31</td>
<td class="editorTd" style="width: 66px"><strong>f</strong></td>
<td class="editorTd" style="width: 66px">48</td>
<td class="editorTd" style="width: 66px"><strong>w</strong></td>
<td class="editorTd" style="width: 66px">&nbsp;</td>
<td class="editorTd" style="width: 66px">&nbsp;</td></tr>
<tr>
<td class="editorTd" style="width: 66px">15</td>
<td class="editorTd" style="width: 66px"><strong>P</strong></td>
<td class="editorTd">32</td>
<td class="editorTd" style="width: 66px"><strong>g</strong></td>
<td class="editorTd" style="width: 66px">49</td>
<td class="editorTd" style="width: 66px"><strong>x</strong></td>
<td class="editorTd" style="width: 66px">&nbsp;</td>
<td class="editorTd" style="width: 66px">&nbsp;</td></tr>
<tr>
<td class="editorTd" style="width: 66px">16</td>
<td class="editorTd" style="width: 66px"><strong>Q</strong></td>
<td class="editorTd">33</td>
<td class="editorTd" style="width: 66px"><strong>h</strong></td>
<td class="editorTd" style="width: 66px">50</td>
<td class="editorTd" style="width: 66px"><strong>y</strong></td>
<td class="editorTd" style="width: 66px">&nbsp;</td>
<td class="editorTd" style="width: 66px">&nbsp;</td></tr></table><br />
<div class="spctrl"></div>　　让我们再来看一个实际的例子，加深印象！<br />
<div class="spctrl"></div>　　转换前<span style="color: #000000"> 10101101 10111010 01110110 </span><br />
<div class="spctrl"></div><span style="color: #000000">　　转换后 001</span><span style="color: #000000">01011 0001101</span><span style="color: #000000">1 00101001 00110110 (</span><span style="color: red">把三个字节补位为四个字节所以最大为00111111＝63,因为总数只有64个所以叫Base64</span>)<br />
<div class="spctrl"></div>　　十进制 43 27 41 54 <br />
<div class="spctrl"></div>　　对应码表中的值 r b p 2 <br />
<div class="spctrl"></div>　　所以上面的24位编码，编码后的Base64值为 rbp2<br />
<div class="spctrl"></div>
<p>　　解码同理，把 rbq2 的二进制位连接上再重组得到三个8位值，得出原码。<br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3><a name="1_1"></a>在下载软件中加密下载地址的原理</h3>
<p><br />　　<br /></p>
<div class="spctrl"></div>
<p>　　先以&#8220;迅雷下载&#8221;为例： 很多下载类网站都提供&#8220;迅雷下载&#8221;的链接，其地址通常是加密的迅雷专用下载地址。<br /></p>
<div class="spctrl"></div>
<p>　　如thunder://QUFodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvc3NsbTFfbG9nby5naWZaWg==<br /></p>
<div class="spctrl"></div>
<p>　　其实迅雷的&#8220;专用地址&#8221;也是用Base64加密的，其加密过程如下：<br /></p>
<div class="spctrl"></div>
<p>　　一、在地址的前后分别添加AA和ZZ<br /></p>
<div class="spctrl"></div>
<p>　　如www.baidu.com/img/sslm1_logo.gif变成<br /></p>
<div class="spctrl"></div>
<p>　　AAwww.baidu.com/img/sslm1_logo.gifZZ<br /></p>
<div class="spctrl"></div>
<p>　　二、对新的字符串进行Base64编码<br /></p>
<div class="spctrl"></div>
<p>　　如AAwww.baidu.com/img/sslm1_logo.gifZZ用Base64编码得到<br /></p>
<div class="spctrl"></div>
<p>　　QUFodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvc3NsbTFfbG9nby5naWZaWg==<br /></p>
<div class="spctrl"></div>
<p>　　三、在上面得到的字符串前加上&#8220;thunder://&#8221;就成了<br /></p>
<div class="spctrl"></div>
<p>　　thunder://QUFodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvc3NsbTFfbG9nby5naWZaWg==<br /></p>
<div class="spctrl"></div>
<p>　　另：<br /></p>
<div class="spctrl"></div>
<p>　　Flashget的与迅雷类似，只不过在第一步时加的&#8220;料&#8221;不同罢了，Flashget在地址前后加的&#8220;料&#8221;是[FLASHGET]<br /></p>
<div class="spctrl"></div>
<p>　　而QQ旋风的干脆不加料，直接就对地址进行Base64编码了</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1515622.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47968/" target="_blank">IE市场份额首次跌破60%</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>序列化和反序列化(转)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515615.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 02 Jul 2009 08:37:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515615.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1515615.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1515615.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1515615.html</trackback:ping><description><![CDATA[前言：&nbsp;当两个进程在进行远程通信时，彼此可以发送各种类型的数据。无论是何种类型的数据，都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列，才能在网络上传送；接收方则需要把字节序列再恢复为对象。&nbsp;<span style="color: red"><strong>把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。</strong><br /></span><span style="color: red">这里还要注意对象的序列化主要有两种用途：1） 在网络上传送对象的字节序列。2） 把对象的字节序列永久地保存到硬盘上，通常存放在一个文件中。</span><br />.net为我们主要提供了三种序列化方式：<br /><img height="310" alt="" src="http://images.cnblogs.com/cnblogs_com/wjfluisfigo/serialize.jpg" width="702" border="0" /><br />它们的主要区别请参考下图：<br /><img height="366" alt="" src="http://images.cnblogs.com/cnblogs_com/wjfluisfigo/seriaDiff.jpg" width="551" border="0" /><br />最后来三段代码，简单实现常用的序列化和反序列化。<br />1、使用<strong>BinaryFormatter</strong> 
<div class="cnblogs_code">
<p><img id="Code_Closed_Image_172233" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_172233').style.display='none'; document.getElementById('Code_Open_Image_172233').style.display='inline'; document.getElementById('Code_Open_Text_172233').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_172233" style="display: inline" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_172233').style.display='none'; getElementById('Code_Closed_Image_172233').style.display='inline'; getElementById('Code_Closed_Text_172233').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_172233" style="display: none">Code</span><span id="Code_Open_Text_172233" style="display: inline"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Data;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Configuration;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.IO;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Runtime.Serialization.Formatters.Binary;<br /><br /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;BinarySerialize<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">要使一个类可序列化，最简单的方法是使用Serializable&nbsp;属性对它进行标记</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[Serializable]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;User&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">要序列化的用户类</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;tid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">252</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">jeff&nbsp;wong</span><span style="color: #800000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[NonSerialized]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">male</span><span style="color: #800000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;性别被标识为不可序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SerializeUtil<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;strFile&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">c:\\User.data</span><span style="color: #800000">"</span><span style="color: #000000">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Serialize(User&nbsp;testUser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></span></p>
<p><span style="display: inline"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //可以用<font style="background-color: #eeeeee">MemoryStream等</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(FileStream&nbsp;fs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileStream(strFile,&nbsp;FileMode.Create))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryFormatter&nbsp;formatter&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BinaryFormatter();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter.Serialize(fs,&nbsp;testUser);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;User&nbsp;DeSerialize()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;testUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(FileStream&nbsp;fs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileStream(strFile,&nbsp;FileMode.Open))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryFormatter&nbsp;formatter&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BinaryFormatter();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(User)formatter.Deserialize(fs);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;testUser;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerializeUtil.Serialize(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;User());</span><span style="color: #008000">//</span><span style="color: #008000">序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;tmpUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SerializeUtil.DeSerialize();</span><span style="color: #008000">//</span><span style="color: #008000">反序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(tmpUser.tid&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">-</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;tmpUser.name);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(tmpUser.sex);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">sex被标识为不可序列化，所以总为null</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></span></p></div>
<p>2、使用<strong>SoapFormatter</strong><br />&nbsp;先添加System.Runtime.Serialization.Formatters.Soap引用，然后和BinaryFormatter类似，我们只需要做一下简单修改即可：<br />&nbsp;a.将using语句中的.Formatter.Binary改为.Formatter.Soap;<br />&nbsp;b.将所有的BinaryFormatter替换为SoapFormatter.<br />&nbsp;c.确保报存文件的扩展名为.xml<br />&nbsp;经过上面简单改动，即可实现SoapFormatter的串行化，这时候产生的文件就是一个xml格式的文件。</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_173339" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_173339').style.display='none'; document.getElementById('Code_Open_Image_173339').style.display='inline'; document.getElementById('Code_Open_Text_173339').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_173339" style="display: inline" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_173339').style.display='none'; getElementById('Code_Closed_Image_173339').style.display='inline'; getElementById('Code_Closed_Text_173339').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_173339" style="display: none">Code</span><span id="Code_Open_Text_173339" style="display: inline"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Data;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Configuration;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.IO;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Runtime.Serialization.Formatters.Soap;<br /><br /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;SoapSerialize<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">要使一个类可序列化，最简单的方法是使用Serializable&nbsp;属性对它进行标记</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[Serializable]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;User&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">要序列化的用户类</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;tid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">252</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">jeff&nbsp;wong</span><span style="color: #800000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[NonSerialized]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">male</span><span style="color: #800000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;性别被标识为不可序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SerializeUtil<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;strFile&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">c:\\User.xml</span><span style="color: #800000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">存为xml</span><span style="color: #008000"><br /></span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Serialize(User&nbsp;testUser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(FileStream&nbsp;fs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileStream(strFile,&nbsp;FileMode.Create))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SoapFormatter&nbsp;formatter&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SoapFormatter();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter.Serialize(fs,&nbsp;testUser);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;User&nbsp;DeSerialize()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;testUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(FileStream&nbsp;fs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileStream(strFile,&nbsp;FileMode.Open))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SoapFormatter&nbsp;formatter&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SoapFormatter();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(User)formatter.Deserialize(fs);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;testUser;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerializeUtil.Serialize(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;User());</span><span style="color: #008000">//</span><span style="color: #008000">序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;tmpUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SerializeUtil.DeSerialize();</span><span style="color: #008000">//</span><span style="color: #008000">反序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(tmpUser.tid&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">-</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;tmpUser.name);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(tmpUser.sex);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">sex被标识为不可序列化，所以总为null</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></span></div>
<p>（3）、使用<strong>XmlSerializer<br /></strong>想使用XmlSeralizer进行串行化我们需要做一下修改：<br />&nbsp;a.添加System.Xml.Serialization命名空间.<br />&nbsp;b.Serializable和NoSerialized属性将被忽略,而是使用XmlIgnore属性，它的行为与NoSerialized类似.<br />&nbsp;c.XmlSeralizer要求类有个默认的构造器.</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_180930" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_180930').style.display='none'; document.getElementById('Code_Open_Image_180930').style.display='inline'; document.getElementById('Code_Open_Text_180930').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_180930" style="display: inline" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_180930').style.display='none'; getElementById('Code_Closed_Image_180930').style.display='inline'; getElementById('Code_Closed_Text_180930').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_180930" style="display: none">Code</span><span id="Code_Open_Text_180930" style="display: inline"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Data;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Configuration;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.IO;<br /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Xml.Serialization;<br /><br /></span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;XmllSerialize<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;[Serializable]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;User&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">要序列化的用户类</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;tid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">252</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[XmlIgnore]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">male</span><span style="color: #800000">"</span><span style="color: #000000">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;User(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;name)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;必须注意：XmlSeralizer要求类有个默认的构造器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;User()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SerializeUtil<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;strFile&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">c:\\User.xml</span><span style="color: #800000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">存为xml</span><span style="color: #008000"><br /></span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Serialize(User&nbsp;testUser)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;xs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlSerializer(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(User));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(Stream&nbsp;stream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileStream(strFile,&nbsp;FileMode.Create,&nbsp;FileAccess.Write,&nbsp;FileShare.Read))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xs.Serialize(stream,&nbsp;testUser);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;User&nbsp;DeSerialize()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;testUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(FileStream&nbsp;fs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileStream(strFile,&nbsp;FileMode.Open,&nbsp;FileAccess.Read,&nbsp;FileShare.Read))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;xs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlSerializer(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(User));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(User)xs.Deserialize(fs);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;testUser;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Program<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerializeUtil.Serialize(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;User(</span><span style="color: #800000">"</span><span style="color: #800000">jeff&nbsp;wong</span><span style="color: #800000">"</span><span style="color: #000000">));</span><span style="color: #008000">//</span><span style="color: #008000">序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;tmpUser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SerializeUtil.DeSerialize();</span><span style="color: #008000">//</span><span style="color: #008000">反序列化</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(tmpUser.tid&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">-</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;tmpUser.name);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(tmpUser.sex);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></span></div><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1515615.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47968/" target="_blank">IE市场份额首次跌破60%</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>彼岸花</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515113.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Wed, 01 Jul 2009 17:44:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515113.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1515113.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/07/02/1515113.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1515113.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1515113.html</trackback:ping><description><![CDATA[曼珠沙华，又称彼岸花。一般认为是生长在三途河边的接引之花。花香传说有魔力，能唤起死者生前的记忆。春分前后三天叫春彼岸，秋分前后三天叫秋彼岸。是上坟的日子。 彼岸花开在彼岸期间，非常准时，所以才叫彼岸花。 <br />&nbsp; &nbsp;<br />彼岸花，花开彼岸，花开时看不到叶子，有叶子时看不到花，花叶两不相见，生死相错。相传此花只开于黄泉，是黄泉路上唯一的风景。远远看上去就像是鲜血所铺成的地毯, 又因其红的似火而被喻为&#8221;火照之路&#8221; 也是这长长黄泉路上唯一的色彩，人就踏着这花的指引通向幽冥之狱。佛说彼岸，无生无死，无苦无悲，无欲无求，是个忘记一切悲苦的极乐世界。而有种花，超出三界之外，不在五行之中，生于弱水彼岸，无茎无叶，绚烂绯红，佛说，那是彼岸花。. <br /><br />彼岸花，开一千年，落一千年，花叶永不相见，情不为生死，缘不问因果&#8230;&#8230; <img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1515113.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47968/" target="_blank">IE市场份额首次跌破60%</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>必须掌握的命令行(转)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/29/1512980.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Mon, 29 Jun 2009 02:11:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/29/1512980.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1512980.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/29/1512980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1512980.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1512980.html</trackback:ping><description><![CDATA[一，ping 　　 <br /><br />　　它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说，ping命令是第一个必须掌握的DOS命令，它所利用的原理是这样的：网络上的机器都有唯一确定的IP地址，我们给目标IP地址发送一个数据包，对方就要返回一个同样大小的数据包，根据返回的数据包我们可以确定目标主机的存在，可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧，在DOS窗口中键入：ping /? 回车，。所示的帮助画面。在此，我们只掌握一些基本的很有用的参数就可以了（下同）。 　　 <br /><br />　　-t 表示将不间断向目标IP发送数据包，直到我们强迫其停止。试想，如果你使用100M的宽带接入，而目标IP是56K的小猫，那么要不了多久，目标IP就因为承受不了这么多的数据而掉线，呵呵，一次攻击就这么简单的实现了。 　　 <br /><br />　　-l 定义发送数据包的大小，默认为32字节，我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用，会有更好的效果哦。 　　 <br /><br />　　-n 定义向目标IP发送数据包的次数，默认为3次。如果网络速度比较慢，3次对我们来说也浪费了不少时间，因为现在我们的目的仅仅是判断目标IP是否存在，那么就定义为一次吧。 　　 <br /><br />　　说明一下，如果-t 参数和 -n参数一起使用，ping命令就以放在后面的参数为标准，比如"ping IP -t -n 3"，虽然使用了-t参数，但并不是一直ping下去，而是只ping 3次。另外，ping命令不一定非得ping IP，也可以直接ping主机域名，这样就可以得到主机的IP。 　　 <br /><br />　　下面我们举个例子来说明一下具体用法。 　　 <br /><br />　　这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒，从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统，之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。 <br /><br />　　（小知识：如果TTL=128，则表示目标主机可能是Win2000；如果TTL=250，则目标主机可能是Unix） <br /><br />　　至于利用ping命令可以快速查找局域网故障，可以快速搜索最快的QQ服务器，可以对别人进行ping攻击&#8230;&#8230;这些就靠大家自己发挥了。 　　 <br /><br />二，nbtstat 　　 <br /><br />　　该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接，使用这个命令你可以得到远程主机的NETBIOS信息，比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。 　　 <br /><br />　　-a 使用这个参数，只要你知道了远程主机的机器名称，就可以得到它的NETBIOS信息（下同）。 　　 <br /><br />　　-A 这个参数也可以得到远程主机的NETBIOS信息，但需要你知道它的IP。 <br /><br />　　-n 列出本地机器的NETBIOS信息。 　　 <br /><br />　　当得到了对方的IP或者机器名的时候，就可以使用nbtstat命令来进一步得到对方的信息了，这又增加了我们入侵的保险系数。 　　 <br /><br />三，netstat <br /><br />　　这是一个用来查看网络状态的命令，操作简便功能强大。 　　 <br /><br />　　-a 查看本地机器的所有开放端口，可以有效发现和预防木马，可以知道机器所开的服务等信息，如图4。 　　 <br /><br />　　这里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务等。用法：netstat -a IP。 <br /><br />　　-r 列出当前的路由信息，告诉我们本地机器的网关、子网掩码等信息。用法：netstat -r IP。 <br />四，tracert <br /><br />　　跟踪路由信息，使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径，这对我们了解网络布局和结构很有帮助。如图5。 　　 <br /><br />　　这里说明数据从本地机器传输到192.168.0.1的机器上，中间没有经过任何中转，说明这两台机器是在同一段局域网内。用法：tracert IP。 　　 <br /><br />五，net 　　 <br /><br />　　这个命令是网络命令中最重要的一个，必须透彻掌握它的每一个子命令的用法，因为它的功能实在是太强大了，这简直就是 微软为我们提供的最好的入侵工具。首先让我们来看一看它都有那些子命令，键入net /?回车如图6。 <br /><br />　　在这里，我们重点掌握几个入侵常用的子命令。 　　 <br /><br />　　net view 　　 <br /><br />　　使用此命令查看远程主机的所以共享资源。命令格式为net view \IP。　　 <br /><br />　　net use <br /><br />　　把远程主机的某个共享资源影射为本地盘符，图形界面方便使用，呵呵。命令格式为net use x: \IP\sharename。上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。下面表示和192.168.0.7建立IPC$连接（net use \IP\IPC$ "password" /user:"name"）， 　　 <br /><br />　　建立了IPC$连接后，呵呵，就可以上传文件了：copy nc.exe \192.168.0.7\admin$，表示把本地目录下的nc.exe传到远程主机，结合后面要介绍到的其他DOS命令就可以实现入侵了。 　　 <br /><br />　　net start <br /><br />　　使用它来启动远程主机上的服务。当你和远程主机建立连接后，如果发现它的什么服务没有启动，而你又想利用此服务怎么办？就使用这个命令来启动吧。用法：net start servername，如图9，成功启动了telnet服务。 　　 <br /><br />　　net stop <br /><br />　　入侵后发现远程主机的某个服务碍手碍脚，怎么办？利用这个命令停掉就ok了，用法和net start同。 　　 <br /><br />　　net user <br /><br />　　查看和帐户有关的情况，包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的，最重要的，它为我们克隆帐户提供了前提。键入不带参数的net user，可以查看所有用户，包括已经禁用的。下面分别讲解。 <br /><br />　　1，net user abcd 1234 /add，新建一个用户名为abcd，密码为1234的帐户，默认为user组成员。 <br /><br />　　2，net user abcd /del，将用户名为abcd的用户删除。 <br /><br />　　3，net user abcd /active:no，将用户名为abcd的用户禁用。 <br /><br />　　4，net user abcd /active:yes，激活用户名为abcd的用户。 <br /><br />　　5，net user abcd，查看用户名为abcd的用户的情况　　 <br /><br />　　net localgroup <br /><br />　　查看所有和用户组有关的信息和进行相关操作。键入不带参数的net localgroup即列出当前所有的用户组。在入侵过程中，我们一般利用它来把某个帐户提升为administrator组帐户，这样我们利用这个帐户就可以控制整个远程主机了。用法：net localgroup groupname username /add。 　　 <br /><br />　　现在我们把刚才新建的用户abcd加到administrator组里去了，这时候abcd用户已经是超级管理员了，呵呵，你可以再使用net user abcd来查看他的状态，和图10进行比较就可以看出来。但这样太明显了，网管一看用户情况就能漏出破绽，所以这种方法只能对付菜鸟网管，但我们还得知道。现在的手段都是利用其他工具和手段克隆一个让网管看不出来的超级管理员，这是后话。有兴趣的朋友可以参照《黑客防线》第30期上的《由浅入深解析隆帐户》一文。 　　 <br /><br />　　net time <br /><br />　　这个命令可以查看远程主机当前的时间。如果你的目标只是进入到远程主机里面，那么也许就用不到这个命令了。但简单的入侵成功了，难道只是看看吗？我们需要进一步渗透。这就连远程主机当前的时间都需要知道，因为利用时间和其他手段（后面会讲到）可以实现某个命令和程序的定时启动，为我们进一步入侵打好基础。用法：net time \IP。 　　 <br /><br />六，at <br /><br />这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序（知道net time的重要了吧？）。当我们知道了远程主机的当前时间，就可以利用此命令让其在以后的某个时间（比如2分钟后）执行某个程序和命令。用法：at time command \computer。 　　 <br /><br />　　表示在6点55分时，让名称为a-01的计算机开启telnet服务（这里net start telnet即为开启telnet服务的命令）。 　　 <br />七，ftp 　　 <br /><br />　　大家对这个命令应该比较熟悉了吧？网络上开放的ftp的主机很多，其中很大一部分是匿名的，也就是说任何人都可以登陆上去。现在如果你扫到了一台开放ftp服务的主机（一般都是开了21端口的机器），如果你还不会使用ftp的命令怎么办？下面就给出基本的ftp命令使用方法。 <br /><br />　　首先在命令行键入ftp回车，出现ftp的提示符，这时候可以键入"help"来查看帮助（任何DOS命令都可以使用此方法查看其帮助)。 　　 <br /><br />　　大家可能看到了，这么多命令该怎么用？其实也用不到那么多，掌握几个基本的就够了。 　　 <br /><br />　　首先是登陆过程，这就要用到open了，直接在ftp的提示符下输入"open 主机IP ftp端口"回车即可，一般端口默认都是21，可以不写。接着就是输入合法的用户名和密码进行登陆了，这里以匿名ftp为例介绍。 　　 <br /><br />　　用户名和密码都是ftp，密码是不显示的。当提示**** logged in时，就说明登陆成功。这里因为是匿名登陆，所以用户显示为Anonymous。 　　 <br /><br />　　接下来就要介绍具体命令的使用方法了。 　　 <br /><br />　　dir 跟DOS命令一样，用于查看服务器的文件，直接敲上dir回车，就可以看到此ftp服务器上的文件。 <br /><br />　　cd 进入某个文件夹。 <br /><br />　　get 下载文件到本地机器。 <br /><br />　　put 上传文件到远程服务器。这就要看远程ftp服务器是否给了你可写的权限了，如果可以，呵呵，该怎么 利用就不多说了，大家就自由发挥去吧。 <br /><br />　　delete 删除远程ftp服务器上的文件。这也必须保证你有可写的权限。 <br /><br />　　bye 退出当前连接。 <br /><br />　　quit 同上。 <br />　　 <br /><br />八，telnet <br /><br />　　功能强大的远程登陆命令，几乎所有的入侵者都喜欢用它，屡试不爽。为什么？它操作简单，如同使用自己的机器一样，只要你熟悉DOS命令，在成功以administrator身份连接了远程机器后，就可以用它来干你想干的一切了。下面介绍一下使用方法，首先键入telnet回车，再键入help查看其帮助信息。 　　 <br /><br />　　然后在提示符下键入open IP回车，这时就出现了登陆窗口，让你输入合法的用户名和密码，这里输入任何密码都是不显示的。 　　 <br /><br />　　当输入用户名和密码都正确后就成功建立了telnet连接，这时候你就在远程主机上具有了和此用户一样的权限，利用DOS命令就可以实现你想干的事情了。这里我使用的超级管理员权限登陆的。　　 <br /><br />　　到这里为止，网络DOS命令的介绍就告一段落了，这里介绍的目的只是给菜鸟网管一个印象，让其知道熟悉和掌握网络DOS命令的重要性。其实和网络有关的DOS命令还远不止这些，这里只是抛砖引玉，希望能对广大菜鸟网管有所帮助。学好DOS对当好网管有很大的帮助，特别的熟练掌握了一些网络的DOS命令。 <br /><br />　　另外大家应该清楚，任何人要想进入系统，必须得有一个合法的用户名和密码（输入法漏洞差不多绝迹了吧），哪怕你拿到帐户的只有一个很小的权限，你也可以利用它来达到最后的目的。所以坚决消灭空口令，给自己的帐户加上一个强壮的密码，是最好的防御弱口令入侵的方法。 <br /><br />　　最后，由衷的说一句，培养良好的安全意识才是最重要的。 <br /><br />========================================= <br />开始&#8594;运行&#8594;命令集锦 <br />winver---------检查Windows版本 <br />wmimgmt.msc----打开windows管理体系结构(WMI) <br />wupdmgr--------windows更新程序 <br />wscript--------windows脚本宿主设置 <br />write----------写字板 <br />winmsd---------系统信息 <br />wiaacmgr-------扫描仪和照相机向导 <br />winchat--------XP自带局域网聊天 <br /><br />mem.exe--------显示内存使用情况 <br />Msconfig.exe---系统配置实用程序 <br />mplayer2-------简易widnows media player <br />mspaint--------画图板 <br />mstsc----------远程桌面连接 <br />mplayer2-------媒体播放机 <br />magnify--------放大镜实用程序 <br />mmc------------打开控制台 <br />mobsync--------同步命令 <br /><br />dxdiag---------检查DirectX信息 <br />drwtsn32------ 系统医生 <br />devmgmt.msc--- 设备管理器 <br />dfrg.msc-------磁盘碎片整理程序 <br />diskmgmt.msc---磁盘管理实用程序 <br />dcomcnfg-------打开系统组件服务 <br />ddeshare-------打开DDE共享设置 <br />dvdplay--------DVD播放器 <br /><br />net stop messenger-----停止信使服务 <br />net start messenger----开始信使服务 <br />notepad--------打开记事本 <br />nslookup-------网络管理的工具向导 <br />ntbackup-------系统备份和还原 <br />narrator-------屏幕"讲述人" <br />ntmsmgr.msc----移动存储管理器 <br />ntmsoprq.msc---移动存储管理员操作请求 <br />netstat -an----(TC)命令检查接口 <br /><br />syncapp--------创建一个公文包 <br />sysedit--------系统配置编辑器 <br />sigverif-------文件签名验证程序 <br />sndrec32-------录音机 <br />shrpubw--------创建共享文件夹 <br />secpol.msc-----本地安全策略 <br />syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码 <br />services.msc---本地服务设置 <br />Sndvol32-------音量控制程序 <br />sfc.exe--------系统文件检查器 <br />sfc /scannow---windows文件保护 <br /><br />tsshutdn-------60秒倒计时关机命令 <br />tourstart------xp简介（安装完成后出现的漫游xp程序） <br />taskmgr--------任务管理器 <br /><br />eventvwr-------事件查看器 <br />eudcedit-------造字程序 <br />explorer-------打开资源管理器 <br /><br /><br />packager-------对象包装程序 <br />perfmon.msc----计算机性能监测程序 <br />progman--------程序管理器 <br /><br />regedit.exe----注册表 <br />rsop.msc-------组策略结果集 <br />regedt32-------注册表编辑器 <br />rononce -p ----15秒关机 <br />regsvr32 /u *.dll----停止dll文件运行 <br />regsvr32 /u zipfldr.dll------取消ZIP支持 <br /><br />cmd.exe--------CMD命令提示符 <br />chkdsk.exe-----Chkdsk磁盘检查 <br />certmgr.msc----证书管理实用程序 <br />calc-----------启动计算器 <br />charmap--------启动字符映射表 <br />cliconfg-------SQL SERVER 客户端网络实用程序 <br />Clipbrd--------剪贴板查看器 <br />conf-----------启动netmeeting <br />compmgmt.msc---计算机管理 <br />cleanmgr-------垃圾整理 <br />ciadv.msc------索引服务程序 <br /><br />osk------------打开屏幕键盘 <br />odbcad32-------ODBC数据源管理器 <br />oobe/msoobe /a----检查XP是否激活 <br />lusrmgr.msc----本机用户和组 <br />logoff---------注销命令 <br /><br /><br />iexpress-------木马捆绑工具，系统自带 <br /><br />Nslookup-------IP地址侦测器 <br /><br />fsmgmt.msc-----共享文件夹管理器 <br /><br />utilman--------辅助工具管理器 <br /><br />gpedit.msc-----组策略 <br /><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1512980.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47965/" target="_blank">Google App Engine宕机6小时——云的安全在哪里？</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>flah体验</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/27/1512047.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 26 Jun 2009 18:46:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/27/1512047.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1512047.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/27/1512047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1512047.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1512047.html</trackback:ping><description><![CDATA[<p>以前做flash只是写他的 action script 和服务器交互socket client http client什么的，自己没做过动画，目前想学silverlight动画的制作，感觉不好入手，所以想先拿flash入门 于是做了一个最简单的瀑布效果</p>
<p>&nbsp;</p>
<p>1。图层</p>
<p>2。帧：</p>
<p>3。帧频</p>
<p>4。绘图</p>
<p>&nbsp;</p>
<p>　　<strong>帧</strong>&#8212;&#8212;就是影像动画中最小单位的单幅影像画面，相当于电影胶片上的每一格镜头。 <br /></p>
<div class="spctrl"></div>
<p>　　<strong>关键帧</strong>&#8212;&#8212;任何动画要表现运动或变化，至少前后要给出两个不同的关键状态，而中间状态的变化和衔接电脑可以自动完成，在<a href="http://baike.baidu.com/view/7641.htm" target="_blank">Flash</a>中，表示关键状态的帧叫做关键帧。 <br /></p>
<div class="spctrl"></div>
<p>　　<strong>过渡帧</strong>&#8212;&#8212;在两个关键帧之间，电脑自动完成过渡画面的帧叫做过渡帧。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>帧频</strong>&#8212;&#8212;视频剪辑每秒显示的帧数</p>
<div class="spctrl"></div>
<p>　　<strong>关键帧和过渡帧的联系和区别</strong> <br /></p>
<div class="spctrl"></div>
<p>　　两个关键帧的中间可以没有过渡帧（如逐帧动画），但过渡帧前后肯定有关键帧，因为过渡帧附属于关键帧； <br /></p>
<div class="spctrl"></div>
<p>　　关键帧可以修改该帧的内容，但过渡帧无法修改该帧内容。 <br /></p>
<div class="spctrl"></div>
<p>　　关键帧中可以包含形状、剪辑、组等多种类型的元素或诸多元素，但过渡帧中对象只能是剪辑（影片剪辑、图形剪辑、按钮）或独立形状。<br /></p>
<div class="spctrl"></div>
<p>　　影片是由一张张连续的图片组成的，每幅图片就是一帧，PAL制式每秒钟25帧，NTSC制式每秒钟30帧。</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1512047.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47961/" target="_blank">微软新推社交网站Windows Live Planet</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>做web做页面做太多了,老想着做多页面,和页面跳转</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510969.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 25 Jun 2009 06:35:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510969.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1510969.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510969.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1510969.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1510969.html</trackback:ping><description><![CDATA[<p>webform程序,一般以做页面 和页面跳转为主</p>
<p>而windowform一般以一个主入口,然后加载为主</p>
<p>&nbsp;</p>
<p>看了几个webgame,基本上是以windowform的概念做的,一般只有一个也,而用js等动态输出内容</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1510969.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47960/" target="_blank">火狐3.5版被指推出太匆忙：存在50多个漏洞</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>安装vs2010后以前的.netframework2.0无法改回来</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510959.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 25 Jun 2009 06:28:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510959.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1510959.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1510959.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1510959.html</trackback:ping><description><![CDATA[<p>需要手动重新发布你的项目</p>
<p>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/1/ROOT/你的虚拟目录名</p>
<p>&nbsp;</p>
<p>还有 如果w3wp是由2.0启动的话,那么2010就启动不了</p>
<p>反之同理,需要关闭w3wp进程</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1510959.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47960/" target="_blank">火狐3.5版被指推出太匆忙：存在50多个漏洞</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>Silverlight发布</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510808.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 25 Jun 2009 03:13:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510808.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1510808.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/25/1510808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1510808.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1510808.html</trackback:ping><description><![CDATA[<div class="t_msgfont" id="postmessage_1050">Silverlight发布- IIS服务器配置<br /><br />　　在Silverlight中需要使用xap、XAML文件类型，如果您想在IIS服务器上使用Silverlight程序，所以必须在IIS中注册xaml和xap的MIME文件类型。打开IIS-&gt;站点属性-&gt;HTTP头-&gt;MIME类型-&gt;新建：<br /><br />&nbsp; &nbsp;扩展名：&nbsp;&nbsp;.xap<br />&nbsp; &nbsp;&nbsp; &nbsp;MIME类型：xapapplication/x-silverlight<br /><br />&nbsp; &nbsp;&nbsp; &nbsp;扩展名：&nbsp;&nbsp;.xaml<br />　 MIME类型：application/xaml+xml</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">注意：目前在web项目引用silverlight时，经常出现变为bin引用 不更新情况，这时候删了clientbin重新引用一下</div>
<div class="t_msgfont">
<div class="t_msgfont">还有播放视频的路径要引真实路径(http:)相对路径我没搞明白怎么引</div></div> <img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1510808.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47960/" target="_blank">火狐3.5版被指推出太匆忙：存在50多个漏洞</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>玄幻系列</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/23/1509741.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Tue, 23 Jun 2009 12:52:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/23/1509741.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1509741.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/23/1509741.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1509741.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1509741.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>有些内涵的 有自己完整的世界观</p>
<p>1。新的基础能源</p>
<p>2。由新基础能源衍生出各种动力，能力，宠物，和世界组成</p>
<p>3。战争</p>
<p>4。被爱</p>
<p>5。被恨</p>
<p>6。被毁灭</p>
<p>7。被拯救</p>
<p>&nbsp;</p>
<p>剧情一般显性的是战争，是人性</p>
<p>隐性的是追求能源的根源，世界的组成，起源，是一种世界观的追求，而不是单一人性的追求</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1509741.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47959/" target="_blank">Google对手机搜索进行优化升级</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>目前在程序和平台比较通用的协议的通信标准</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/22/1508634.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Mon, 22 Jun 2009 10:28:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/22/1508634.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1508634.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/22/1508634.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1508634.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1508634.html</trackback:ping><description><![CDATA[<p>1.TCP/UDP绝对是最常用的 </p>
<p>socket是一个针对TCP和UDP编程的借口，你可以借助它建立TCP连接等等。而TCP和UDP协议属于传输层&nbsp;&nbsp; </p>
<p>2.<em>SOAP</em>：简单对象访问协议 （SOAP：Simple Object Access Protocol）基于 XML 的协议 ,最常见的形式就是现在的webservices了</p>
<p><br />3.FTP</p>
<p>4.SMTP/POP3 邮件</p>
<p>5.HTTP:http是个应用层的协议，它实际上也建立在TCP协议之上</p>
<p>&nbsp;</p>
<p>基本上常用的就这几种,这些通信协议的编码在每种编辑器里基本上是一样的(不管是java&nbsp; .net pl/sql flash siliverlight,javascript)</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1508634.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47958/" target="_blank">风声又起 Windows 7 RTM版7月13日完成</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>浏览器，RIA,flash,flex,siliverlight,socket</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/21/1507585.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Sat, 20 Jun 2009 21:55:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/21/1507585.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1507585.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/21/1507585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1507585.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1507585.html</trackback:ping><description><![CDATA[<p>今天看了一下siliverlight制作的聊天室，发现就是吧以前java和flash做的聊天室翻译过来了</p>
<p>原理就是 服务器做socket server 然后开多线程处理每个请求，然后吧每个请求发送到每个客户端(还是以服务器为中心的通信，不能实现p2p点对点)</p>
<p>客户端请求服务器socket server </p>
<p>那么，官方的（第三方有）RIA p2p什么时候能实现，？可能实现吗？实现了会不会RIA病毒满天飞了（RIA两个重要的技术没有实现，<span style="color: red">1.读写文件2.点对点,是因为安全性考虑)</span></p>
<p>在目前这个 浏览器越做越象操作系统的年代，RIA技术的真相只不过是CS程序换了个平台运行而已（可以把 浏览器看作是个虚拟机，软件只不过是在虚拟机上运行)</p>
<p>所以微软现在号称，WPF,siliverlight程序 既可以单独为CS程序运行，又可以依附在浏览器上，那是因为，现在的浏览器，就是个操作系统，大概浏览器以后就会保留个浏览器的样子而已，说白了就是把window操作系统的界面做的和浏览器一样，然后其它CS程序就叫RIA了(当然，现在运行环境也分开了，java虚拟机，.netframework等等)</p>
<p>&nbsp;</p>
<p>换句话说，以后保留浏览器，实际就是为了迎合这么多年来支持和爱护着浏览器的客户们!!!!!!!!!</p>
<p>&nbsp;</p>
<p>今天因为和朋友谈RIA视频会议的实现可能，想到的上边这些，如果理论是对的，那么看来只能对大部分人提供音频会议了(siliverlight暂时好像还不能做视频聊天)</p>
<p>视频会议的话实现到没问题，不过服务器压力过大，会挂掉的，真要做，需要收费添硬件,一个服务器使用有限的人,当然期待点对点的出现，期待这些大牛解决安全问题(题外话，呵呵，如果RIA可以开本机端口这么大的权力，那么它就相当于cs程序了，安装时候一定要做到提示，不能直接下载运行了事，到时候一开浏览器就提示安装不安装，确实问题,而且万一点同意了 没准就是个病毒,直接格式化了你的硬盘,不过这样杀毒软件又能火一把了)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;作视频聊天软件还是以C++ 和Socket为主的cs是正道，bs的RIA只是辅助的作用，多元化发展之一</p>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1507585.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47957/" target="_blank">乔布斯和埃利森</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>诚招美工</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/20/1507172.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 19 Jun 2009 16:29:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/20/1507172.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1507172.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/20/1507172.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1507172.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1507172.html</trackback:ping><description><![CDATA[<p>1..美术、平面设计专业出身；</p>
<p>2.具备深厚的美术功底，有出色的手绘能力,色彩感觉良好,画风多变，写实能力强.</p>
<p>3.熟练使用photoshop，手绘板等图形设计制作<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%C8%ED%BC%FE">软件</span></p>
<p>4.有1-2年以上Flash开发经验，精通ActionScript3.0(AS3)，有良好的OOP编程思想；熟悉http,Socket等各种通信方式，有<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=flash">flash</span>和后台<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B3%CC%D0%F2">程序</span>交互开发经验；</p>
<p>5.熟练使用dreamwave制作网页，熟练Div+css网页布局</p>
<p>6.有<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D3%CE%CF%B7">游戏</span>行业工作经验，熟悉游戏原画设计流程和规范优先；<br />7.热爱游戏，对游戏行业有着执着的追求，深玩过2款以上游戏，并能详细说出自己的独到见解；</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1507172.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47956/" target="_blank">Xbox Live将投放Silverlight广告</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>虚卡在线交易平台做反了（临时日志）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498280.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Sun, 07 Jun 2009 13:59:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498280.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1498280.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1498280.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1498280.html</trackback:ping><description><![CDATA[<p>应该统一做在交易平台那(通过虚卡系统跳转)，然后交易成功后 在交易平台调用虚卡系统的webservices,冲入库存 </p>
<p>&nbsp;</p>
<p>双机热备</p>
<p>多数据库（没办法 做到数据库里吧，做一个支持多数据库的类当参数传，这个失误很大）,吧服务器对应的数据库和选择服务器的公共接口做好</p>
<p>虚卡财务报表</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1498280.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47951/" target="_blank">Debian无视GNU创始人警告 接受Mono</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>SSL工作原理</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498235.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Sun, 07 Jun 2009 12:21:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498235.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1498235.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498235.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1498235.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1498235.html</trackback:ping><description><![CDATA[<table cellspacing="0" cellpadding="0" width="96%" align="center" border="0">
<tr>
<td height="50">
<div align="center">
<p><strong><span class="style2">SSL工作原理</span></strong><br /></p></div></td></tr>
<tr>
<td bgcolor="#ffffff">
<p>SSL 是一个安全协议，它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。因特网的 <em>超文本传输协议 </em>（HTTP）使用 SSL 来实现安全的通信。 </p>
<p>在客户端与服务器间传输的数据是通过使用对称算法（如 DES 或 RC4）进行加密的。公用密钥算法（通常为 RSA）是用来获得加密密钥交换和数字签名的，此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书，客户端也可以验证服务器的身份。SSL 协议的版本 1 和 2 只提供服务器认证。版本 3 添加了客户端认证，此认证同时需要客户端和服务器的数字证书。 </p>
<h4>SSL 握手 </h4>
<p>SSL 连接总是由客户端启动的。在SSL 会话开始时执行 SSL 握手。此握手产生会话的密码参数。关于如何处理 SSL 握手的简单概述，如下图所示。此示例假设已在 Web 浏览器 和 Web 服务器间建立了 SSL 连接。 </p>
<p><strong>图 SSL的客户端与服务器端的认证握手 </strong><br /><br /><img height="393" alt="SSL 与服务器认证的握手" src="http://www.wosign.com/Basic/images/howsslwork_clip_image002.gif" width="517" /></p>
<p>(1) 客户端发送列出客户端密码能力的客户端&#8220;您好&#8221;消息（以客户端首选项顺序排序），如 SSL 的版本、客户端支持的密码对和客户端支持的数据压缩方法。消息也包含 28 字节的随机数。 </p>
<p>(2) 服务器以服务器&#8220;您好&#8221;消息响应，此消息包含密码方法（密码对）和由服务器选择的数据压缩方法，以及会话标识和另一个随机数。 <br /><strong>&nbsp;&nbsp;注意</strong><strong>:</strong>客户端和服务器至少必须支持一个公共密码对，否则握手失败。服务器一般选择最大的公共密码对。 </p>
<p>(3) 服务器发送其SSL数字证书。（服务器使用带有 SSL 的 X.509 V3 数字证书。） <br />&nbsp; &nbsp; 如果服务器使用 SSL V3，而服务器应用程序（如 Web 服务器）需要数字证书进行客户端认证，则客户端会发出&#8220;数字证书请求&#8221;消息。在 &#8220;数字证书请求&#8221;消息中，服务器发出支持的客户端数字证书类型的列表和可接受的CA的名称。 </p>
<p>(4) 服务器发出服务器&#8220;您好完成&#8221;消息并等待客户端响应。 </p>
<p>(5) 一接到服务器&#8220;您好完成&#8221;消息，客户端（ Web 浏览器）将验证服务器的SSL数字证书的有效性并检查服务器的&#8220;你好&#8221;消息参数是否可以接受。 <br />&nbsp;&nbsp; 如果服务器请求客户端数字证书，客户端将发送其数字证书；或者，如果没有合适的数字证书是可用的，客户端将发送&#8220;没有数字证书&#8221;警告。此警告仅仅是警告而已，但如果客户端数字证书认证是强制性的话，服务器应用程序将会使会话失败。 </p>
<p>(6) 客户端发送&#8220;客户端密钥交换&#8221;消息。此消息包含 <em>pre-master secret </em>（一个用在对称加密密钥生成中的 46 字节的随机数字），和 <em>消息认证代码 </em>（ MAC ）密钥（用服务器的公用密钥加密的）。 <br />&nbsp;&nbsp; 如果客户端发送客户端数字证书给服务器，客户端将发出签有客户端的专用密钥的&#8220;数字证书验证&#8221;消息。通过验证此消息的签名，服务器可以显示验证客户端数字证书的所有权。 <br />&nbsp;&nbsp; <strong>注意</strong><strong>: </strong>如果服务器没有属于数字证书的专用密钥，它将无法解密 pre-master 密码，也无法创建对称加密算法的正确密钥，且握手将失败。 </p>
<p>(7) 客户端使用一系列加密运算将 pre-master secret 转化为 <em>master secret </em>，其中将派生出所有用于加密和消息认证的密钥。然后，客户端发出&#8220;更改密码规范&#8221; 消息将服务器转换为新协商的密码对。客户端发出的下一个消息（&#8220;未完成&#8221;的消息）为用此密码方法和密钥加密的第一条消息。 </p>
<p>(8) 服务器以自己的&#8220;更改密码规范&#8221;和&#8220;已完成&#8221;消息响应。 </p>
<p>(9) SSL 握手结束，且可以发送加密的应用程序数据。 </p></td></tr></table><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1498235.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47951/" target="_blank">Debian无视GNU创始人警告 接受Mono</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>.net MVC小尝试</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498225.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Sun, 07 Jun 2009 12:07:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498225.html</guid><wfw:comment>http://www.cnblogs.com/cuihongyu3503319/comments/1498225.html</wfw:comment><comments>http://www.cnblogs.com/cuihongyu3503319/archive/2009/06/07/1498225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cuihongyu3503319/comments/commentRss/1498225.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cuihongyu3503319/services/trackbacks/1498225.html</trackback:ping><description><![CDATA[<p>一直做.net事件驱动 没做过MVC 建了一个MVC上来就到处找Action到那个类</p>
<p>后来发现MVC框架已经模拟好了这个请求,通过自动生成的HOME的例子看到</p>
<p>简单来说就是</p>
<p>控制器行为的目的： </p>
<p>Index（）：当你想显示任务清单时调用。</p>
<p>Create（）：当你想显示创建一个新任务的窗体时显示调用。</p>
<p>CreateNew（）：当创建一个新任务的窗体被提交时调用，这个控制器行为真实地把新任务添加到数据库中。</p>
<p>Complete（）：当一个新任务被标记为完成时调用。</p>
<p>&nbsp;</p>
<p><strong>创建视图</strong></p>
<p>视图包括HTML标记和返回给浏览器的内容，在ASP.NET MVC应用程序中视图是最接近页面的事物，通过创建一个扩展名为.aspx的文件来创建一个视图。</p>
<p>你必须将视图放在正确的位置，如果你给HomeController的Index（）行为方法创建了一个视图，你必须将这个视图放在\Views\Home\Index.aspx。</p>
<p>如果你正在为ProductController的Price() 行为方法创建视图，视图就必须放在\Views\Product\Price.aspx。</p>
<p>默认情况下，视图的名字和它对应的控制器行为的名字一样，<span style="color: red">视图必须放在与它名字对应的控制器文件夹下。</span></p>
<p>创建的时候一定要根据规则创建,MVC框架自动模拟各种请求,视图和控制器是对应的</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 简单的菜单和请求代码</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id="logindisplay"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% Html.RenderPartial("LoginUserControl"); %&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id="menucontainer"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ul id="menu"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;%= Html.<span style="color: red">ActionLink</span>("Home", "Index", "Home")%&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;%= Html.<span style="color: red">ActionLink</span>("About Us", "About", "Home")%&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>通过对MVC的学习，我们可以看到MVC有如下特点：<br />1) 业务处理与显示分离：ASPX页面与CS代码彻底分离。更好的复用和维护。<br />2) 服务器端的表单控件不再被提倡使用，取而代之使用传统的input，或直接让Html.TextBox</p>
<p>生成控件标签。<br />3) 没有了事件驱动模型。在ASP.NET MVC中，当某个按钮被点击，你不要再习惯性想到应该在</p>
<p>相应的aspx.cs中有</p>
<p>个Click处理方法，你应该想到的是该有某个Controller中有个Action来处理这个事件。<br />4) 没有了数据绑定。如果你习惯了GridView的数据绑定，在ASP.NET MVC中则需要改变思路，</p>
<p>你自己动手解决。<br />5) 增加了地址重写。MVC的Routing组件让我们可以很好的进行URL路由处理。<br />6) 总体来看，可以理解MVC是基于Web Form的一种编程方式模型扩展，是一种表示层的编程模</p>
<p>型方案。<br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/cuihongyu3503319/aggbug/1498225.html?type=1" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47951/" target="_blank">Debian无视GNU创始人警告 接受Mono</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item></channel></rss>