上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 26 下一页
摘要: 在写TCP应用的时候一般都通过Accept来接入连接的接入,但对于Socket来说这个Accept同时能处理多大的量一般都没有明确说明,在应用中主要根据自己的需要设置Listen的队列数量.那Listen(1000)是不是就能说明同时刻1000个连接进来都能被Accept到呢?通过测试的结果来看windows下是不能的....Linux下则可以.测试代码C# Socket mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); m... 阅读全文
posted @ 2013-12-23 11:19 beetlex 阅读(2880) 评论(4) 推荐(3) 编辑
摘要: 最近需要为组件实现一个HTTP的扩展包,所以简单地实现了HTTP协议分析。对于HTTP协议就不详细解说了网上的资料太丰富了,这里主要描述如何通过byte[]流分析出HTTP协议头信息。HTTP协议头有两个协议字符是比较重要的分别就是'\r\n'和':',前者要描述每个头信息的结束,而后则是属性名和属性值的分隔符号。实现由于并没有使用Stream来处理所以在分析的时候就不能使用ReadLine来的方便,只能通过分析byte来解决。估计有朋友会问直接把byte[]打包成Stream就方便了,其实主要是使用场问题,有可能一次过来的byte[]包括多个http请求。所以 阅读全文
posted @ 2013-12-18 13:19 beetlex 阅读(3304) 评论(0) 推荐(1) 编辑
摘要: Beetle.Redis是一款开源的Redis Client for .net组件,它提供非常简便的操作方式可以让开发人员轻松地访问Redis,同时提供json和protobuf的数据格式支持.基于连接池的默认访问方式可以让开发人员简洁高效地访问redis同时,而不必关心线程和连接同步等一系列复杂的事情.配置组件在使用前要进行配置,主要用于描述访问Redis的信息,分别是读写服务表列. 以上分别配置读/写服务地址,默认开启的连接数是9个,访问数据库是0;根据实际应用的需要读/写都可以配置多个redis服务信息... 阅读全文
posted @ 2013-12-16 13:24 beetlex 阅读(8260) 评论(4) 推荐(10) 编辑
摘要: SNService是一款基于分布式的唯一ID生成服务,主要用于提供大数量业务数据建立唯一ID的需要;服务提供最低10K/s的唯一ID请求处理.如果你部署服务的CPU资源达到4核的情况下那该服务最低可以提供100K/s的请求处理能力.服务支持部署到Linux mono 3.2.3和Windows .Net4.0ID生成规则 服务生成的ID是64位无符号长整型,其中48位是现有时间和2013年1月1日时间差的毫秒数,另外16位则是针对当前毫秒的递增值.即每毫秒支持6万多个唯一ID生成,每秒则支持多达6千万个ID生成.这个数量级足可以满足大部份的需要. 为了保证所有服务器上的业务... 阅读全文
posted @ 2013-12-02 10:51 beetlex 阅读(10009) 评论(12) 推荐(10) 编辑
摘要: 在前几天简单地测试了一下Mono 3.2.3 TCP处理的稳定性,有同学问Mono 3.2.3的TCP处理性有怎样,以下是针对Mono 3.2.3TCP在吞吐方面的性能测试.主要测试分两种场分别是连接交互密集度高和低的两种情况的处理性能指标.测试环境描述服务端: cpu:e4300 1.7g (5,6年前比较老的PC) 内存:2g 操作系统:centos 6.4 32位 mono版本:3.2.3测试client: cpu:e31230v2(4核8线程) 内存:8G 操作系统:win2008r2测试用例1测试采用请求应答模式,Client在请求后等服务器应答后马上进行下一次处理... 阅读全文
posted @ 2013-11-14 10:48 beetlex 阅读(3293) 评论(7) 推荐(3) 编辑
摘要: 由于兴趣自己业余时间一直在搞.net下面的通讯应用,mono的存在得以让.NET程序轻松运行在Linux之下.不过经过多尝试Socket相关功能在Mono下的表现并不理想.不管性能还是吞吐能力方面离我想要的有比较大的差距.最后一次在2.10.x下测试情况下也比失望,主要是在连接数多数据交互量大的情况下会导致异步send操作虽然成功但会存在数据发送不出去的情况,这情况在应用中显然是不允许发生的;虽然发送可以用同步解决,但连接多的情况同步显然容易导致其他连接处理上存在延时,最终打消了在Mono做通讯的想法.最近Mono发布了新的版3.2.3看了一下感觉不错,顺便也下载了mono的源代码下来看了一下 阅读全文
posted @ 2013-11-11 13:53 beetlex 阅读(3389) 评论(6) 推荐(1) 编辑
摘要: 有很多时候我们需要对代码不同段计算一个执行时间,并希望通过节点树的方式表达现每段代码的执行时长。在.Net下似乎找不到这样一个功能类,所以花了一些时间实现这样一个代码运行计时器。首先看一下简单的需求。功能代码JoinTable table = Order.employeeID.InnerJoin(Employee.employeeID) .InnerJoin(Order.customerID, Customer.customerID) .Select(Order.orderID.At(), Customer.companyName, Employee.firstName, Empl... 阅读全文
posted @ 2013-11-07 11:11 beetlex 阅读(2138) 评论(3) 推荐(5) 编辑
摘要: Conditional是.net提供关于编译的属性描述,其作用是添加到方法或属上,通过定义编译符的方式告指示编译器应忽略方法调用或属性.在.NET中Debug 和 Trace 类中的方法都添加了这属性的定义,主要用于方便在编译的时候可以选择性编译相关调式和跟踪代码。那我们平时在写一个记录跟踪相关功能库的时候,是否有考虑过这东西呢? StopWatchExtend swe = new StopWatchExtend("test"); swe.Start("test"); Console.WriteLine("test"); ... 阅读全文
posted @ 2013-10-31 11:34 beetlex 阅读(2911) 评论(5) 推荐(6) 编辑
摘要: 最近在写一些web应用了解了一下asp.net mvc发现的确好用,所以直接就干上了。不过在使用asp.net mvc的Razor模板的情况并不向传统webform那样可以使用控件。但从Razor的功能上已经具备相关代替的功能,只是从Razor角度来说不是我们平常说的控件而是子模板。由于Razor可以根据自己需求把功能拆分到子模板中,然后通过RenderPage方法输出。从设计的手段上来看完全可以把分页控件封装成一个子的cshtml,在需要的时候引用上就是了。作为一个控件的设计其最重要的环节是隔离和独立性,在这方面Razor也考虑得比较周到,通过PageData可以简单地进行模板之间的数据偶合 阅读全文
posted @ 2013-10-24 13:20 beetlex 阅读(12759) 评论(9) 推荐(8) 编辑
摘要: 阅读全文
posted @ 2013-09-30 22:39 beetlex 阅读(749) 评论(1) 推荐(1) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 26 下一页