﻿<?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>博客园-牧野的Blog-随笔分类-Socket</title><link>http://www.cnblogs.com/wzd24/category/93294.html</link><description>为伊消得人憔悴，衣带渐宽终不悔</description><language>zh-cn</language><lastBuildDate>Sun, 21 Mar 2010 11:15:58 GMT</lastBuildDate><pubDate>Sun, 21 Mar 2010 11:15:58 GMT</pubDate><ttl>60</ttl><item><title> Socket I/O模型全接触</title><link>http://www.cnblogs.com/wzd24/archive/2009/03/09/1407326.html</link><dc:creator>牧野</dc:creator><author>牧野</author><pubDate>Mon, 09 Mar 2009 14:01:00 GMT</pubDate><guid>http://www.cnblogs.com/wzd24/archive/2009/03/09/1407326.html</guid><description><![CDATA[<p>阅读: 1626 评论: 6 作者: <a href="http://www.cnblogs.com/wzd24/" target="_blank">牧野</a> 发表于 2009-03-09 22:01 <a href="http://www.cnblogs.com/wzd24/archive/2009/03/09/1407326.html" target="_blank">原文链接</a></p>本文简单介绍了当前Windows支持的各种Socket I/O模型，如果你发现其中存在什么错误请务必赐教。

    一：select模型
    二：WSAAsyncSelect模型
    三：WSAEventSelect模型
    四：Overlapped I/O 事件通知模型
    五：Overlapped I/O 完成例程模型
    六：IOCP模型<img src="http://www.cnblogs.com/wzd24/aggbug/1407326.html?type=1" width="1" height="1" alt=""/><p>评论: 6　<a href="http://www.cnblogs.com/wzd24/archive/2009/03/09/1407326.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wzd24/archive/2009/03/09/1407326.html#commentform" target="_blank">发表评论</a></p><p><a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/59291/" target="_blank">如果 Facebook 是一个国家，它将是第三大人口国</a><span style="color:gray">(2010-03-21 17:50)</span><br/>· <a href="http://news.cnblogs.com/n/59290/" target="_blank">德国公司推出Android平板电脑WePad</a><span style="color:gray">(2010-03-21 17:43)</span><br/>· <a href="http://news.cnblogs.com/n/59288/" target="_blank">开源硬件能否像开源软件一样流行</a><span style="color:gray">(2010-03-21 17:03)</span><br/>· <a href="http://news.cnblogs.com/n/59287/" target="_blank">陈晓薇以主持人身份亮相电视栏目《波士堂》</a><span style="color:gray">(2010-03-21 16:59)</span><br/>· <a href="http://news.cnblogs.com/n/59286/" target="_blank">开发员在GDC大会出狂言 苹果下架其应用</a><span style="color:gray">(2010-03-21 16:52)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.net 3.5平台上的Socket开发</title><link>http://www.cnblogs.com/wzd24/archive/2009/03/09/1407248.html</link><dc:creator>牧野</dc:creator><author>牧野</author><pubDate>Mon, 09 Mar 2009 11:34:00 GMT</pubDate><guid>http://www.cnblogs.com/wzd24/archive/2009/03/09/1407248.html</guid><description><![CDATA[<p>阅读: 3244 评论: 14 作者: <a href="http://www.cnblogs.com/wzd24/" target="_blank">牧野</a> 发表于 2009-03-09 19:34 <a href="http://www.cnblogs.com/wzd24/archive/2009/03/09/1407248.html" target="_blank">原文链接</a></p>在之前的文章中，我们讲了如何在.NET 2.0下面开发Socket项目。其中的异步Socket让我们得以很轻松的在.NET中开发高性能服务端应用。

但是，在实际应用中我们还是发现了一些问题的存在，如：我们在每一次操作的过程中都要创建一个IAsyncResult上下文对象，如果数据通讯很频繁的话，会导致大量的IAsyncResult对象被创建，大大的增加了垃圾回收器的工作量，从而降低了整个应用的效率。

在.NET 3.5中，这个麻烦已经被解决了，在3.5 版本中，Socket定义了一些新的方法。这些方法不要求每一次操作都创建一个新的上下文对象。 <img src="http://www.cnblogs.com/wzd24/aggbug/1407248.html?type=1" width="1" height="1" alt=""/><p>评论: 14　<a href="http://www.cnblogs.com/wzd24/archive/2009/03/09/1407248.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wzd24/archive/2009/03/09/1407248.html#commentform" target="_blank">发表评论</a></p><p><a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/59291/" target="_blank">如果 Facebook 是一个国家，它将是第三大人口国</a><span style="color:gray">(2010-03-21 17:50)</span><br/>· <a href="http://news.cnblogs.com/n/59290/" target="_blank">德国公司推出Android平板电脑WePad</a><span style="color:gray">(2010-03-21 17:43)</span><br/>· <a href="http://news.cnblogs.com/n/59288/" target="_blank">开源硬件能否像开源软件一样流行</a><span style="color:gray">(2010-03-21 17:03)</span><br/>· <a href="http://news.cnblogs.com/n/59287/" target="_blank">陈晓薇以主持人身份亮相电视栏目《波士堂》</a><span style="color:gray">(2010-03-21 16:59)</span><br/>· <a href="http://news.cnblogs.com/n/59286/" target="_blank">开发员在GDC大会出狂言 苹果下架其应用</a><span style="color:gray">(2010-03-21 16:52)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Socket开发之通讯协议及处理</title><link>http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html</link><dc:creator>牧野</dc:creator><author>牧野</author><pubDate>Sun, 23 Dec 2007 16:34:00 GMT</pubDate><guid>http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html</guid><description><![CDATA[<p>阅读: 6706 评论: 38 作者: <a href="http://www.cnblogs.com/wzd24/" target="_blank">牧野</a> 发表于 2007-12-24 00:34 <a href="http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html" target="_blank">原文链接</a></p>在Socket应用开发中，还有一个话题是讨论的比较多的，那就是数据接收后如何处理的问题。这也是一个令刚接触Socket开发的人很头疼的问题。 <br>因为Socket的TCP通讯中有一个“粘包”的现象，既：大多数时候发送端多次发送的小数据包会被连在一起被接收端同时接收到，多个小包被组成一个大包被接收。有时候一个大数据包又会被拆成多个小数据包发送。这样就存在一个将数据包拆分和重新组合的问题。那么如何去处理这个问题呢？这就是我今天要讲的通讯协议。<br><br>所谓的协议就是通讯双方协商并制定好要传送的数据的结构与格式。并按制定好的格式去组合与分析数据。从而使数据得以被准确的理解和处理。<img src="http://www.cnblogs.com/wzd24/aggbug/1011932.html?type=1" width="1" height="1" alt=""/><p>评论: 38　<a href="http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html#commentform" target="_blank">发表评论</a></p><p><a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/59291/" target="_blank">如果 Facebook 是一个国家，它将是第三大人口国</a><span style="color:gray">(2010-03-21 17:50)</span><br/>· <a href="http://news.cnblogs.com/n/59290/" target="_blank">德国公司推出Android平板电脑WePad</a><span style="color:gray">(2010-03-21 17:43)</span><br/>· <a href="http://news.cnblogs.com/n/59288/" target="_blank">开源硬件能否像开源软件一样流行</a><span style="color:gray">(2010-03-21 17:03)</span><br/>· <a href="http://news.cnblogs.com/n/59287/" target="_blank">陈晓薇以主持人身份亮相电视栏目《波士堂》</a><span style="color:gray">(2010-03-21 16:59)</span><br/>· <a href="http://news.cnblogs.com/n/59286/" target="_blank">开发员在GDC大会出狂言 苹果下架其应用</a><span style="color:gray">(2010-03-21 16:52)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.NET Socket开发之异步Socket</title><link>http://www.cnblogs.com/wzd24/archive/2007/06/13/782833.html</link><dc:creator>牧野</dc:creator><author>牧野</author><pubDate>Wed, 13 Jun 2007 15:59:00 GMT</pubDate><guid>http://www.cnblogs.com/wzd24/archive/2007/06/13/782833.html</guid><description><![CDATA[<p>阅读: 9503 评论: 72 作者: <a href="http://www.cnblogs.com/wzd24/" target="_blank">牧野</a> 发表于 2007-06-13 23:59 <a href="http://www.cnblogs.com/wzd24/archive/2007/06/13/782833.html" target="_blank">原文链接</a></p>在基于.NET的网络服务端的开发中，我们用到和听到的最多的恐怕就是异步Socket了。异步Socket的性能比同步高出很多，但是编写代码比较复杂。因此异步Socket也是网络上讨论比较多的话题。<br><br>今天，我们就来讨论一下如何用异步Socket开发网络应用。<img src="http://www.cnblogs.com/wzd24/aggbug/782833.html?type=1" width="1" height="1" alt=""/><p>评论: 72　<a href="http://www.cnblogs.com/wzd24/archive/2007/06/13/782833.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wzd24/archive/2007/06/13/782833.html#commentform" target="_blank">发表评论</a></p><p><a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/59291/" target="_blank">如果 Facebook 是一个国家，它将是第三大人口国</a><span style="color:gray">(2010-03-21 17:50)</span><br/>· <a href="http://news.cnblogs.com/n/59290/" target="_blank">德国公司推出Android平板电脑WePad</a><span style="color:gray">(2010-03-21 17:43)</span><br/>· <a href="http://news.cnblogs.com/n/59288/" target="_blank">开源硬件能否像开源软件一样流行</a><span style="color:gray">(2010-03-21 17:03)</span><br/>· <a href="http://news.cnblogs.com/n/59287/" target="_blank">陈晓薇以主持人身份亮相电视栏目《波士堂》</a><span style="color:gray">(2010-03-21 16:59)</span><br/>· <a href="http://news.cnblogs.com/n/59286/" target="_blank">开发员在GDC大会出狂言 苹果下架其应用</a><span style="color:gray">(2010-03-21 16:52)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>在C#中利用Keep-Alive处理Socket网络异常断开的方法 </title><link>http://www.cnblogs.com/wzd24/archive/2007/05/22/755050.html</link><dc:creator>牧野</dc:creator><author>牧野</author><pubDate>Tue, 22 May 2007 00:33:00 GMT</pubDate><guid>http://www.cnblogs.com/wzd24/archive/2007/05/22/755050.html</guid><description><![CDATA[<p>阅读: 11086 评论: 67 作者: <a href="http://www.cnblogs.com/wzd24/" target="_blank">牧野</a> 发表于 2007-05-22 08:33 <a href="http://www.cnblogs.com/wzd24/archive/2007/05/22/755050.html" target="_blank">原文链接</a></p>　　最近我负责一个IM项目的开发，服务端和客户端采用TCP协议连接。服务端采用C#开发，客户端采用Delphi开发。在服务端开发中我碰到了各种各样的网络异常断开现象。在处理这些异常的时候有了一些心得，现在写出来和大家分享一下。<img src="http://www.cnblogs.com/wzd24/aggbug/755050.html?type=1" width="1" height="1" alt=""/><p>评论: 67　<a href="http://www.cnblogs.com/wzd24/archive/2007/05/22/755050.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wzd24/archive/2007/05/22/755050.html#commentform" target="_blank">发表评论</a></p><p><a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/59291/" target="_blank">如果 Facebook 是一个国家，它将是第三大人口国</a><span style="color:gray">(2010-03-21 17:50)</span><br/>· <a href="http://news.cnblogs.com/n/59290/" target="_blank">德国公司推出Android平板电脑WePad</a><span style="color:gray">(2010-03-21 17:43)</span><br/>· <a href="http://news.cnblogs.com/n/59288/" target="_blank">开源硬件能否像开源软件一样流行</a><span style="color:gray">(2010-03-21 17:03)</span><br/>· <a href="http://news.cnblogs.com/n/59287/" target="_blank">陈晓薇以主持人身份亮相电视栏目《波士堂》</a><span style="color:gray">(2010-03-21 16:59)</span><br/>· <a href="http://news.cnblogs.com/n/59286/" target="_blank">开发员在GDC大会出狂言 苹果下架其应用</a><span style="color:gray">(2010-03-21 16:52)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>在C#中实现Socket端口复用 </title><link>http://www.cnblogs.com/wzd24/archive/2007/05/22/755016.html</link><dc:creator>牧野</dc:creator><author>牧野</author><pubDate>Tue, 22 May 2007 00:19:00 GMT</pubDate><guid>http://www.cnblogs.com/wzd24/archive/2007/05/22/755016.html</guid><description><![CDATA[<p>阅读: 7061 评论: 29 作者: <a href="http://www.cnblogs.com/wzd24/" target="_blank">牧野</a> 发表于 2007-05-22 08:19 <a href="http://www.cnblogs.com/wzd24/archive/2007/05/22/755016.html" target="_blank">原文链接</a></p>一、什么是端口复用： <br>　　因为在winsock的实现中，对于服务器的绑定是可以多重绑定的，在确定多重绑定使用谁的时候，根据一条原则是谁的指定最明确则将包递交给谁，而且没有权限之分。这种多重绑定便称之为端口复用。<img src="http://www.cnblogs.com/wzd24/aggbug/755016.html?type=1" width="1" height="1" alt=""/><p>评论: 29　<a href="http://www.cnblogs.com/wzd24/archive/2007/05/22/755016.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wzd24/archive/2007/05/22/755016.html#commentform" target="_blank">发表评论</a></p><p><a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/59291/" target="_blank">如果 Facebook 是一个国家，它将是第三大人口国</a><span style="color:gray">(2010-03-21 17:50)</span><br/>· <a href="http://news.cnblogs.com/n/59290/" target="_blank">德国公司推出Android平板电脑WePad</a><span style="color:gray">(2010-03-21 17:43)</span><br/>· <a href="http://news.cnblogs.com/n/59288/" target="_blank">开源硬件能否像开源软件一样流行</a><span style="color:gray">(2010-03-21 17:03)</span><br/>· <a href="http://news.cnblogs.com/n/59287/" target="_blank">陈晓薇以主持人身份亮相电视栏目《波士堂》</a><span style="color:gray">(2010-03-21 16:59)</span><br/>· <a href="http://news.cnblogs.com/n/59286/" target="_blank">开发员在GDC大会出狂言 苹果下架其应用</a><span style="color:gray">(2010-03-21 16:52)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.NET Socket开发之同步Socket实现两例</title><link>http://www.cnblogs.com/wzd24/archive/2007/05/21/753709.html</link><dc:creator>牧野</dc:creator><author>牧野</author><pubDate>Mon, 21 May 2007 01:08:00 GMT</pubDate><guid>http://www.cnblogs.com/wzd24/archive/2007/05/21/753709.html</guid><description><![CDATA[<p>阅读: 3744 评论: 26 作者: <a href="http://www.cnblogs.com/wzd24/" target="_blank">牧野</a> 发表于 2007-05-21 09:08 <a href="http://www.cnblogs.com/wzd24/archive/2007/05/21/753709.html" target="_blank">原文链接</a></p>今天，我们来讲一下在.NET 网络应用程序开发中同步Socket的应用，很多人认为在网络应用的服务端Socket不应该使用同步Socket。是的，在大多数情况下是这样的，但是也有一些场景下我们使用同步Socket可能会得到更的结果。如在下面的两种场景下我们便可以考虑使用同步的Socket。<img src="http://www.cnblogs.com/wzd24/aggbug/753709.html?type=1" width="1" height="1" alt=""/><p>评论: 26　<a href="http://www.cnblogs.com/wzd24/archive/2007/05/21/753709.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/wzd24/archive/2007/05/21/753709.html#commentform" target="_blank">发表评论</a></p><p><a href="http://job.cnblogs.com/" target="_blank">找优秀程序员，就在博客园</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/59291/" target="_blank">如果 Facebook 是一个国家，它将是第三大人口国</a><span style="color:gray">(2010-03-21 17:50)</span><br/>· <a href="http://news.cnblogs.com/n/59290/" target="_blank">德国公司推出Android平板电脑WePad</a><span style="color:gray">(2010-03-21 17:43)</span><br/>· <a href="http://news.cnblogs.com/n/59288/" target="_blank">开源硬件能否像开源软件一样流行</a><span style="color:gray">(2010-03-21 17:03)</span><br/>· <a href="http://news.cnblogs.com/n/59287/" target="_blank">陈晓薇以主持人身份亮相电视栏目《波士堂》</a><span style="color:gray">(2010-03-21 16:59)</span><br/>· <a href="http://news.cnblogs.com/n/59286/" target="_blank">开发员在GDC大会出狂言 苹果下架其应用</a><span style="color:gray">(2010-03-21 16:52)</span><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>