摘要: 转载:http://blog.csdn.net/Zevin/article/details/5731965 线程堆栈:简称栈 Stack 托管堆: 简称堆 Heap 使用.Net框架开发程序的时候,我们无需关心内存分配问题,因为有GC这个大管家给我们料理一切。如果我们写出如下两段代码: 代码段1: public int AddFive(int pValue) { ... 阅读全文
posted @ 2013-11-06 11:16 coderi++ 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/tianzhiliang/archive/2011/03/02/1969187.html 前几天“X教授”发Email与我讨论Socket通信方面的问题,主要涉及4个方面内容,现将回信公布出来,希望园友们能积极参与讨论,提出更好的解决方案。 下面是“X教授”的来信: ====================================... 阅读全文
posted @ 2013-11-05 17:14 coderi++ 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/tianzhiliang/archive/2011/06/27/2091214.html 当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通常连接到服务器上的特定端口,并请求服务器通过临时(或暂时)TCP 或 UDP 端口进行响应。在 Windows Server 2003 和 Windows XP 中,客户端应用程序所使用的临时端口的默认范围为 1025 到 5000。在某些情况下,有可能耗尽默认范围的可用端口。 TCP/IP 端口耗尽的症状随客户端应用程序的不同而不同,但通常都表现为显示网络连接失败错误。若要确定网络连接失... 阅读全文
posted @ 2013-11-05 17:00 coderi++ 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 转载:http://space.itpub.net/17007506/viewspace-615570 笔者在闲暇时,偶尔会登录腾讯QQGame玩玩升级游戏。这确实是一款非常优秀的软件作品,腾讯的开发人员在此展现了极高的技术水准。QQ游戏同时在线用户数都在百万到千万之数量级以上,可以想象其在性能方面所面临的挑战有多高。 QQ升级游戏有一个“快速加入游戏”的功能,方便玩家尽快加入目标牌桌... 阅读全文
posted @ 2013-11-05 10:21 coderi++ 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 转载:http://space.itpub.net/17007506/viewspace-616852 腾讯QQGame游戏同时在线的玩家数量极其庞大,为了方便组织玩家组队游戏,腾讯设置了大量游戏室(房间),玩家可以选择进入属意的房间,并在此房间内找到可以加入的游戏组(牌桌、棋盘等)。玩家选择进入某个房间时,必须确保此房间当前人数未满(通常上限为400),否则进入步骤将会失败。玩家在登入QQGa... 阅读全文
posted @ 2013-11-05 10:21 coderi++ 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/zc22/archive/2010/06/27/1766007.html ------------------ 前言 ------------------ 开发了这么多年,发现最困难的程序开发就是通讯系统。 其他大部分系统,例如CRM/CMS/权限框架/MIS之类的,无论怎么复杂,基本上都能够本地代码本地调试,性能也不太重要。(也许这个就是.ne... 阅读全文
posted @ 2013-11-05 09:49 coderi++ 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 转载:作者:fengge8ylf 博客:http://blog.csdn.net/fengge8ylf 对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了. 一.为什么基于TCP的通讯程序需... 阅读全文
posted @ 2013-11-05 09:31 coderi++ 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/tianzhiliang/archive/2010/10/28/1863684.html Socket服务器主要用于提供高效、稳定的数据处理、消息转发等服务,它直接决定了前台应用程序的性能。我们先从整体上认识一下Socket服务器,Socket服务器从架构上一般分为:网络层、业务逻辑层、会话层、数据访问层,如图: (图1) (一) 网... 阅读全文
posted @ 2013-11-05 09:12 coderi++ 阅读(1071) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/tianzhiliang/archive/2011/06/13/2079564.html 请注意,这里有两个词分别被我标记上了引号,一个是“理论”,一个是“65535”。强调“理论”这个词,是想特别明确误解者的意思:就是说,这个值是不可能被打破的,是铁板钉丁的。而65535这个数字的由来,很多人想当然地将它与port最大值联系起来。的确,TCP... 阅读全文
posted @ 2013-11-05 09:10 coderi++ 阅读(2370) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/tianzhiliang/archive/2010/08/31/1813637.html 如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完... 阅读全文
posted @ 2013-11-05 09:06 coderi++ 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/tianzhiliang/archive/2010/12/23/1914940.html 1、TCP连接 要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起... 阅读全文
posted @ 2013-11-05 09:01 coderi++ 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/tianzhiliang/archive/2010/08/31/1813659.html 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高... 阅读全文
posted @ 2013-11-05 08:59 coderi++ 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 转载自baidu:http://hi.baidu.com/jackeyrain/item/ff94efcfd5cf3a3099b498e9 namespace Public{ public class NativeFunc { [StructLayout(LayoutKind.Sequential)] public class MIB_TCPROW ... 阅读全文
posted @ 2013-11-04 16:25 coderi++ 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6200060 一:)略谈 ArraySegment顾名思义就是Array区块,数组的小抽屉,用于对该数组中元素的范围进行分隔。比如这个数组: String[] myArr = { "Overred", "Medloy", "Xiaoguai", "Hare" }; 我们用ArraySegment这个抽屉给装起来就是:ArraySegment arrSeg = new ArraySegment(myArr 阅读全文
posted @ 2013-11-04 13:15 coderi++ 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: 转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6199891 例1: public static void Main() { List ls = new List(); for (int i = 0; i Console.WriteLine(i)); ... 阅读全文
posted @ 2013-11-04 12:57 coderi++ 阅读(463) 评论(0) 推荐(0) 编辑
摘要: Technorati 标签: C# 转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6199514 我们在使用c#托管代码时,内存地址和GC回收那不是我们关心的,CLR已经给我们暗箱操作。 但是如果我们在c#中调用了一个非托管代码,比如vc的DLL,而且他有个回调函数,需要引用c#中的某个对象并操作,这时候你就得要小心了。 要是非托管代码中用到得托管代码那个对象被GC给回收了,这时候就会报内存错误。 所以我们就要把那个对象“钉”住(pin),让它的内存地址固定,而不被垃圾回收掉,然后最后我们自己管理,自己... 阅读全文
posted @ 2013-11-01 16:52 coderi++ 阅读(8872) 评论(3) 推荐(1) 编辑
摘要: Technorati 标签: C# 转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6175533 var关键字是C# 3.0开始新增的特性,称为推断类型 .可以赋予局部变量推断“类型”var 而不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。上面的资料有点抽象不好理解.示例:原来我们定义变量,是要这样:数据类型 变量名 = 值;如:int a = 1; string b = "2& 阅读全文
posted @ 2013-10-29 16:43 coderi++ 阅读(5174) 评论(2) 推荐(1) 编辑
摘要: 转自csdn:http://blog.csdn.net/robingaoxb/article/details/6199508msdn里讲到:“在 C# 中很少需要使用指针,但仍有一些需要使用的情况。例如,在下列情况中使用允许采用指针的不安全上下文是正确的:处理磁盘上的现有结构涉及内部包含指针的结构的高级 COM 或平台调用方案性能关键代码对于第一和第二点,主要是调win32的api。但是“性能关键代码”这个非常重要。我来举例引申一下。我们都知道像飞信这种大型IM服务端,难免会面临大量的字符处理(协议报文)。如果同时在线100多万,而且大家都同时进行会话,服务端的程序如果对内存回收不好,那肯定会 阅读全文
posted @ 2013-10-29 15:29 coderi++ 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://tech.chinaunix.net/a2010/0909/1101/000001101396.shtml 【IT168技术文档】最近浏览了几篇有关Socket发送消息的文章,发现大家对Socket Send方法理解有所偏差,现将自己在开发过程中对Socket的领悟写出来,以供大家参考。 (一)架构 基于TCP协议的Socket通信,架构类似于B/S架构,一个Socket通信服务器,多个Socket通信客户端。Socket通信服务器启动时,会建立一个侦听Socket,侦听Socket将侦听到的Socket连接传给接受Socket,然后由接受Socket完成接受、发送消.. 阅读全文
posted @ 2013-10-28 17:25 coderi++ 阅读(3157) 评论(0) 推荐(0) 编辑
摘要: 转自百度百科 方便阅读IPX/SPX目 录1英文原义2中文释义3IPX协议3.1说明3.2应用4SPX协议4.1说明4.2应用1英文原义IPX/SPX2中文释义Internet分组交换/顺序分组交换IPX/SPX(Internetwork Packet Exchange/Sequences Packet Exchange)是Novell公司的通信协议集。与NetBEUI形成鲜明区别的是IPX/SPX比较庞大,在复杂环境下具有很强的适应性。这是因为IPX/SPX在设计一开始就考虑了网段的问题,因此它具有强大的路由功能,适合于大型网络使用。当用户端接入NetWare服务器时,IPX/SPX及其兼容 阅读全文
posted @ 2013-10-24 11:08 coderi++ 阅读(1204) 评论(0) 推荐(0) 编辑