上一页 1 2 3 4 5 6 7 8 9 ··· 17 下一页
摘要: 在分布式通信系统中,网络传递的是二进制流,而内存中是我们基于对象模型构建的各种各样的对象,当我们需要将一个对象通过网络传递给另一个节点时,首先需要将其序列化为字节流,然后通过网络发送给目标节点,目标节点接收后,再反序列化为对象实例。在ESFramework体系中,也是遵循同样的规则。 ESFra... 阅读全文
posted @ 2011-04-17 19:18 zhuweisky 阅读(2545) 评论(8) 推荐(4)
摘要: ESFramework 4.0 内核(ESFramework.dll)已经相当成熟,不会轻易修改,而在不断增强中的是ESPlus和ESFramework.SL,所以,如下的一些版本变更几乎都是针对ESPlus和ESFramework.SL的。最新版本以及最新demo和帮助文档请到ESFramework 4.0 概述文末下载。 第01次版本更新更新时间:2011.04.12 最新版本:ESPlus v1.2.1.0 ,ESFramework.SL v1.0.2.0更新列表:(1)ESPlus.Application.Basic.Passive.IBasicOutter 增加了查询用户是否在线.. 阅读全文
posted @ 2011-04-15 09:46 zhuweisky 阅读(3399) 评论(12) 推荐(5)
摘要: 在ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程一文中,我们介绍了通过挂接IMessageSpy到骨架流程,我们就可以监控到所有收发的消息。由于Rapid引擎已经为我们组装好了默认的骨架流程,如果使用Rapid引擎,我们就无法插入自定义的IMessageSpy。不过没关... 阅读全文
posted @ 2011-04-14 14:48 zhuweisky 阅读(2310) 评论(2) 推荐(1)
摘要: 在ESFramework 4.0 快速上手 -- 入门Demo,一个简单的IM系统(附源码)一文中,我们介绍了使用ESFramework的Rapid引擎开发的winform聊天程序,本文我们将在之前demo的基础上添加使用ESFramework.SL开发的Silverlight客户端。这样一来,不... 阅读全文
posted @ 2011-04-08 12:38 zhuweisky 阅读(3218) 评论(8) 推荐(8)
摘要: 在编码的时候,我们经常预订某个事件来处理它,但很少取消事件的预订,这种做法可能导致程序在运行时出现一些异常。 如果你的某个用于处理事件的对象不是在运行期内永久存在的(比如,不是Singleton对象),那么请记住一条规则:在该对象(事件预订者)的生命周期中只要预订了其他对象(事件发布者)的事件,... 阅读全文
posted @ 2011-04-07 17:19 zhuweisky 阅读(2310) 评论(5) 推荐(5)
摘要: 前面的文章已经介绍完了基于ESFramework/ESPlus进行二次开发的所有要点,现在,我们可以开始小试牛刀了。 本文将介绍使用ESFramework的Rapid引擎开发的两个最简单的Demo,ESFramework.Demos.Simplest 和 ESFramework.Demos.Si... 阅读全文
posted @ 2011-03-25 11:32 zhuweisky 阅读(6099) 评论(10) 推荐(7)
摘要: 作为.NET平台上的通信框架,ESFramework有哪些优点了?我们有什么理由要使用ESFramework来开发自己的通信应用?1.高性能 ESFramework底层使用IOCP模型,使得数据收发与处理达到最高性能。当前主流配置的服务器(如至强4核双CPU、4-8G内存)可轻松处理10000个同时在线连接,每秒处理50000个以上的请求。当然,最终能达到的并发,更取决于具体应用的业务逻辑,如果业务逻辑复杂、处理单个请求都对CPU和内存的消耗都比较高,那么就会导致并发数下降,这时也许就要优化我们的业务逻辑代码了、或者使用更多的服务器来分担负载(比如迁移到ESPlatform)。关于ESFra. 阅读全文
posted @ 2011-03-24 09:32 zhuweisky 阅读(4660) 评论(15) 推荐(3)
摘要: 在ESFramework 4.0 进阶(02)-- 核心:消息处理的骨架流程一文中我们介绍的ESFramework提供的消息处理的骨架流程,假设我们有这样的需求,我们需要在网关级消息监控器处放置两个监控器,一个用于对收到的消息进行特殊的验证,另一个用于检查重复的消息。咋一看,可能觉得骨架流程做不到... 阅读全文
posted @ 2011-03-22 11:03 zhuweisky 阅读(2049) 评论(2) 推荐(3)
摘要: 在ESFramework框架中基于TCP的服务端引擎(当然也包括Rapid引擎)都采用了这样一条规则:默认情况下,客户端与服务器成功建立TCP连接以后,服务端会从客户端发过来的第一条消息中取出消息头的UserID属性的值,并将其与对应的TCP连接绑定起来。这样,服务端就知道每一个TCP连接所对应... 阅读全文
posted @ 2011-03-15 09:52 zhuweisky 阅读(2522) 评论(1) 推荐(8)
摘要: 在Internet上采用TCP进行通信的系统,都会遇到一个令人头疼的问题,就是“掉线”。而“TCP掉线”这个问题远比我们通常所能想象的要复杂的多 -- 网络拓扑纷繁复杂、而从始节点A到终节点B之间可能要经过N多的交换机、路由器、防火墙等等硬件设备,每个硬件设备的相关设定也不统一,再加上网络中可能出... 阅读全文
posted @ 2011-03-13 12:26 zhuweisky 阅读(3386) 评论(6) 推荐(7)
摘要: 《ESFramework 4.0 快速上手》系列介绍的都是如何使用Rapid引擎(快速引擎) -- RapidServerEngine 和 RapidPassiveEngine。其实,大家可以将这两个引擎看作是两个壳,内部包装的才是真正的ESFramework的网络引擎, ESFramework支持很多种网络引擎(客户端/服务端、二进制协议/文本协议、TCP/UDP),而RapidServerEngine和RapidPassiveEngine采用的是基于TCP和二进制协议的服务端引擎和客户端引擎。这两个壳存在的目的,就是使大家不用了解ESFramework内部机制,就可以非常快速的上手ESF. 阅读全文
posted @ 2011-03-08 16:40 zhuweisky 阅读(2514) 评论(1) 推荐(3)
摘要: Silverlight已经到4.0版本了,已经相当成熟了,在Silverlight中使用socket与服务器进行通信也是常见的需求,所以,作为.NET平台的通信框架,ESFramework支持Silverlight开发是必须的。 ESFramework.SL 即是ESFramework提供的Si... 阅读全文
posted @ 2011-03-07 17:52 zhuweisky 阅读(2273) 评论(1) 推荐(5)
摘要: 在ESFramework 4.0 快速上手一文中,我们讲述了如何使用Rapid引擎可以快速地上手ESFramework开发,文中介绍了使用ESPlus.Application.CustomizeInfo命名空间下的类可以发送和处理自定义消息,本文我们就通过一个简单的例子来深入讲解如何使用自定义消... 阅读全文
posted @ 2011-03-05 15:30 zhuweisky 阅读(2465) 评论(0) 推荐(4)
摘要: ESFramework框架(包括ESPlus、ESPlatform)实现时就内置了相对完整的日志功能,几乎所有的异常(Exception)和错误信息都会被记录到日志。通过查看日志记录,我们可以了解到程序在运行的过程中出现了哪些非正常的状况,并且,详细的日志记录可以帮我们迅速定位问题,并解决问题。(关... 阅读全文
posted @ 2011-03-01 15:22 zhuweisky 阅读(2667) 评论(2) 推荐(3)
摘要: 在ESFramework 4.0 快速上手一文中,主要介绍了如何使用ESPlus.Rapid命名空间中的引擎来快速地构建基于TCP的网络通信系统,即使是使用ESPlus.Rapid来进行ESFramework快速开发,也还有很多可以介绍的内容,于是,我想再多写几篇文章来说明现实通信系统中的一些常... 阅读全文
posted @ 2011-02-25 11:39 zhuweisky 阅读(3566) 评论(11) 推荐(4)
摘要: 以前写的关于架构经验方面的文章(如上一篇实战中演化的三层架构)都是从整体的角度出发的,采用全局的视角,本文我们将拉近镜头,聚焦于日志记录这一块。随着做软件的时间越长、经验积累得越来越多,就越觉得日志记录的重要。 日志记录的主要作用可以从正反两个方面来说:(1)如果程序运行出现问题,可以通过相关日志快速定位到出问题的地方,找到问题的根源,从而快速解决问题。对于已上线的系统来说,如果出现一个bug,通常,解决这个bug的时间主要花在定位bug上,一旦找到bug根源,修复它是非常快的。而恰当的日志记录可以帮我们迅速定位bug。(2)确保我们的系统运行在正常状态。当我们看到日志中类似“***成功完成. 阅读全文
posted @ 2011-02-24 15:31 zhuweisky 阅读(6147) 评论(10) 推荐(8)
摘要: Win7与原来的XP和Win2003相比,安全控制方面更严格。比如,当我们以administrator登陆XP或Win2003时,运行所有的程序即是以管理员的身份启动的。但当以administrator登陆Win7时,通常状态下,运行普通程序是以普通用户的身份启动的。当我们的WinForm应用程... 阅读全文
posted @ 2011-01-22 11:04 zhuweisky 阅读(3994) 评论(8) 推荐(2)
摘要: 本文所描述的TCP代理服务器工作于网络协议层次中的应用层,位于传输层之上。只要是以TCP的方式为客户提供服务的(包括我们的HTTP服务器,HTTP底层走的仍然是TCP),我们都可以在真正的TCP服务器前面增加代理服务器。 一.TCP透明代理的作用TCP代理服务器可以隐藏背后真正TCP服务器,如... 阅读全文
posted @ 2011-01-18 10:15 zhuweisky 阅读(6284) 评论(8) 推荐(11)
摘要: 作为一个搞软件的,能有机会经历被黑客攻击、并参与到抵抗攻击方案的讨论与实施中来,我觉得是很幸运的。虽然每天都有很多攻击产生,但是这种攻击能降临到我们这种不是很知名的公司身上,确实非常难得。下面就把我们对攻击相关的一些认识整理一下并记录,我们也是刚开始积累这些经验,所以有什么错误和不足之处,希望大家不吝斧正和补充。 虽然,我们经常看到一些门户网站被攻击,但是攻击者并不局限于只攻击网站,他可以攻击你对外提供的一切服务,比如,攻击你的游戏服务器、攻击DNS服务器等等。一、为什么会产生攻击?所有攻击的产生都有其背后的原因,我们能想到的有以下几点:(1)黑客小试身手,拿你的服务做试验。真正有实力的黑客是 阅读全文
posted @ 2011-01-05 17:20 zhuweisky 阅读(3114) 评论(3) 推荐(5)
摘要: 我们的网络游戏采用tcp进行通信,服务端程序绑定8300端口,为游戏客户端提供服务,游戏已经上线稳定运行两年多,从今年9月份开始至今碰到了3次攻击,3次攻击所导致的情况一样,描述如下: (1)从应用层上来看,攻击者每次攻击时,与8300端口都有建立最多两、三百个tcp连接。 (2)从防火墙监控来看, 阅读全文
posted @ 2010-12-23 10:30 zhuweisky 阅读(14328) 评论(45) 推荐(9)
上一页 1 2 3 4 5 6 7 8 9 ··· 17 下一页