随笔分类 -  NetworkSocket

Socket Tcp
摘要:定义 Middleware直译叫中间件,目前在百度上很难找到一个简单明了的含义解释,.Net下以前也比较难以看到它的身影,但在Microsoft.Owin里,多个地方都看到MiddleWare,我近来在尝试理解Middleware,并在实际中模仿应用,本文章将我的个人理解和大家分享一下。 Middl 阅读全文
posted @ 2016-01-04 23:36 jiulang 阅读(1693) 评论(6) 推荐(6) 编辑
摘要:前言 在《化茧成蝶,开源NetWorkSocket通讯组件》发表之后,收到大家很多个star,在此感谢!更可贵的是,一些网友提出了许多好建议,经过一些时间的思考,决定将NetworkSocket从模仿MVC之后,继续模仿Owin,并局部突破,作有自己特色和理念的通讯框架。之所以模仿Owin而不是接入 阅读全文
posted @ 2015-12-23 21:33 jiulang 阅读(5304) 评论(13) 推荐(27) 编辑
摘要:前言 前后历时三年,期间大量参考.Net Framework和Asp.net MVC源代码,写写删删再重构,组件如今更新到V1.5.x了。从原来的丑小鸭,变成今天拥有稳定和强大的tcp协议支持基础层,原生支持http、websocket、flash策略服务,以及内置可快速构建tcp通讯的fast协议 阅读全文
posted @ 2015-12-10 15:43 jiulang 阅读(7050) 评论(59) 推荐(51) 编辑
摘要:引言 类型转换经常遇到,最常用的应该是string类型转换为其它基元类型,常见于http参数类型转换。Convert静态类的Convert.ChangeType()方法可以把实现IConvertible接口的类型转换为其它也实现这个接口的类型,也等同于里面的ToInt32()、ToDecimal() 阅读全文
posted @ 2015-12-07 12:22 jiulang 阅读(6789) 评论(11) 推荐(34) 编辑
摘要:前言 业余我都会花一些时间在tcp、http和websocket等领域的学习,现在觉得有点收获,所以把一个基于websocket的群聊功能的例子提供给大家玩玩。当然这是一个很完整的例子,包括websocket的js代码、websocket的cs代码以及html相关和http服务器,都是一体的。有关W 阅读全文
posted @ 2015-12-01 18:54 jiulang 阅读(15211) 评论(7) 推荐(8) 编辑
摘要:前言做支付宝网页支付的同学都会遇到一个问题,支付宝平台的支付结果异步回调很难调试,因为这个回调是反馈到部署的外网环境的,而开发环境没有对外独立ip,开发环境在编写支付后续的逻辑代码就显得很困难,如果能让支付宝平台的回调请求到开发环境来,边调试边开发就爽YY了。本文将提供两种解决方案,方案2的提供相关... 阅读全文
posted @ 2015-10-09 16:45 jiulang 阅读(7293) 评论(10) 推荐(0) 编辑
摘要:为什么要封装真不知道用什么标题合适,我这几天在研究Lucene.Net,觉得把Lucene.Net封装为一个独立的服务器,再提供一个给客户端调用的Api组件应该是一件很意思的事,主要优势有以下:1、可以将索引和检索的压力放到网络的其它主机上,服务器不用再开发,直接运行就可以;2、客户端完全可以脱离L... 阅读全文
posted @ 2015-05-22 17:56 jiulang 阅读(5192) 评论(12) 推荐(21) 编辑
摘要:基础Socket自强的程序猿们都喜欢搞Socket,而且觉得最好自己来封装个组件出来,如果再往上,加入某种数据协议,让上层服务器开发照着此协议走,就是一个小小的框架了。于是,从头开始,最开始的服务器的雏形与下图有一些相似。现在服务器可以通过socket1到n,分别发送二进制数据到达对应的client... 阅读全文
posted @ 2015-04-29 12:38 jiulang 阅读(4089) 评论(8) 推荐(6) 编辑
摘要:问题场景Asp.net Mvc提供了DependencyResolver、Routing、Filter、Modelbinder等webForm所没有新概念,提高Web服务编写的便利性,记得很久之前写的ashx处理程序,由于没有Routing和Modelbinder,代码里写了很多switch cas... 阅读全文
posted @ 2015-04-26 17:25 jiulang 阅读(3407) 评论(1) 推荐(1) 编辑
摘要:概述websocket目前虽然无法普及应用,未来是什么样子,我们不得而知,但现在开始学习应用它,只有好处没有坏处,本随笔的WebSocket是版本13(RFC6455)协议的实现,也是目前websocket的最新协议,协议的英文文档可以查看http://tools.ietf.org/html/rfc6455,中文翻译的文档可以查看http://blog.csdn.net/stoneson/article/details/8063802,下面是聊天的截图例子(很粗糙,但应该不影响)。客户端的实现在支持webSocket的浏览器下,调用newwindow.WebSocket(url)就返回了web 阅读全文
posted @ 2014-03-14 11:16 jiulang 阅读(1692) 评论(3) 推荐(2) 编辑
摘要:前言本小节是NetworkSocket系列的第10小节,在阅读本小节之前,您可能需要先阅读前面的使用FastTcpServerEx构建服务器,否则觉得本文内容跳转比较大。描述FastTcpServerEx是从TcpServerEx派生,使用的协议和TcpServerEx完成相同,FastTcpServerEx充分结合C#强大的反射功能,大大地简化了服务器编程难度,从使用FastTcpServerEx构建服务器看出中,只要定义服务接口,实现接口,就完成了服务器,这是因为利用了反射。下面是使用FastTcpServerEx构建服务器小节中中的DemoServer类图,IDemoServer里的所有 阅读全文
posted @ 2013-04-16 09:46 jiulang 阅读(1243) 评论(1) 推荐(1) 编辑
摘要:前言本小节是NetworkSocket系列的第9小节,在阅读本小节之前,您可能需要先阅读前面的几个小节,否则可能觉得内容跳转比较大。描述TcpServerBase<TDataEvenArgs>是所有Tcp服务器对象的基础类,它将固有的客户端连接监听、在线客户端对象维护、客户端连接断开、关闭客户端连接这些操作已经封装好,对于具体协议的服务器,只要派生于此类,编写协议描述就可以了。类图设计思路性能:TcpServerBase<TDataEventArgs>使用SocketAsyncPool<TDataEventArgs>来保存一定数量的SocketAsync&l 阅读全文
posted @ 2013-04-15 11:05 jiulang 阅读(1208) 评论(0) 推荐(1) 编辑
摘要:前言前面给出了几个例子如何使用NetworkSocket构建服务和客户端,但没有详细说明过NetworkSocket里的设计思路,以及几个重要对象的说明,本节将解说NetworkSocket里的最基础最重要的SocketAsync<TDataEventArgs>类。类图设计思路性能:服务器一个重要的参考点就是拼性能,SocketAsync也使用了SocketAsyncEventArgs对象作发送和接收数据,为了防止缓冲区内存碎片化,我们需要把该对象的缓冲区统一放到一块连续的内存区域,对应上图的SocketAsncBufferManage,方便:SocketAsync的目标是,给我一 阅读全文
posted @ 2013-04-14 14:48 jiulang 阅读(722) 评论(0) 推荐(0) 编辑
摘要:前言在实际运用中,服务器和客户端都需要遵从某种协议,浏览器里有http协议,各路由器也有自己的协议,我们自己编写的服务器和客户端,也往往加入自己某种理解方式的协议,而NetworkSocket的TcpServerEx是使用DataEventExArgs来描述它的协议,如果我们写客户端来连接其它已有的服务器,可能需要扩展NetworkSocket了。假设现有的服务器用的协议是包长[4byte] + 实体数据[N个byte],那么我们就可以如下来实现类似的服务器和和可以与之正常通讯的客户端。编写协议描述NetworkSocket任何协议的描述都是从DataEventArgs类派生,下面我们来实现这 阅读全文
posted @ 2013-04-14 13:32 jiulang 阅读(1007) 评论(0) 推荐(0) 编辑
摘要:前言本小节是NetworkSocket系列的第6小节,在阅读本小节之前,您可能需要先阅读前面的几个小节,否则可能觉得内容跳转比较大。描述FastTcpServerEx是从TcpServerEx派生,使用的协议和TcpServerEx完成相同,FastTcpServerEx充分结合C#强大的反射功能,大大地简化了服务器编程难度,更符合实际通讯项目的编写,与之相比,前两章节提到的TcpServerBase和TcpServerEx构建服务器,离实际项目要求还相差很远。FastTcpServerEx的工作原理是,当收到客户端发来的数据DataEventExArgs后,分析DataEventExArgs 阅读全文
posted @ 2013-04-14 12:04 jiulang 阅读(1763) 评论(6) 推荐(0) 编辑
摘要:描述TcpServerEx是从TcpServerBase<DataEventExArgs>派生,它与TcpServerBase用法非常相似,不同的是它对发送的数据进行封包处理,可以和客户端之间传送复杂的实体,同时对应的SocketAsync<DataEventExArgs>扩展了发送数据的方法SendCallback,该方法发送数据到另一端后,不需要事件接收返回的数据,而是通过回调得到数据,可以在一个方法内编写更符合一般逻辑的代码风格。封包是由DataEventExArgs来描述,其代码如下:View Code using System;using System.Col 阅读全文
posted @ 2013-04-14 02:14 jiulang 阅读(1352) 评论(2) 推荐(0) 编辑
摘要:描述TcpServerBase是从TcpServerBase<DataEventArgs>派生面来,它只能简单的接受客户端连接、接收客户端发来的数据、向客户端发送byte[]数据,但它能保证数据的正常收发,同时维护连接的客户端的实例,TcpServerBase是使用事件驱动,当收到客户端发送过来的数据后,通过OnRecvComplete事件将数据取出,事件的第一个参数sender是触发的客户端对象,为SocketAsync<DataEventArgs>类形。构建服务器新建工程ServerBase,引用NetworkSocket.dll,引入NetworkSocket命名 阅读全文
posted @ 2013-04-13 22:43 jiulang 阅读(1573) 评论(0) 推荐(1) 编辑
摘要:简介NetworkSocket是基于SocketAsyncEventArgs封装Tcp通讯协议组件,其NetworkSocket.Fast层提供类似MVC功能,可实现快速编写通讯服务项目,此外NetworkSocket.WebSocket项目亦实现了websocket版本13的服务端功能。Githu... 阅读全文
posted @ 2013-04-13 20:18 jiulang 阅读(4933) 评论(10) 推荐(5) 编辑
摘要:1 NetWorkSocket 此命名空间是组件最外层命名空间,包含Binay、ByteBuilder、DataEventArgs、SocketAsync<T>、TcpServerBase<T>、TcpClientBase<T>基础类,所有Server和Client都是从TcpServerBase<T>和TcpClientBase<T>派生过来。2 NetWorkSocket.Compress 数据压缩和解压缩3 NetWorkSocket.Security 数据加密和解密4 NetWorkSocket.Serialization 序 阅读全文
posted @ 2013-04-13 19:36 jiulang 阅读(1127) 评论(0) 推荐(0) 编辑
摘要:概述NetworkSocket是我从去年工作之余开始,基于.net 4.0 的Socket写的支持跨平台双工的轻量级通讯组件。组件体积小(约40KB)、通讯稳定、可扩展性高、调用方便;支持多种数据序列化方式,支持GZip数据压缩传输和DES数据加密传输。组件结构图本人不才,所以只能画了一张类图,希望大家能理解我想表达的意思,后期我会努力加强。类图连接:http://www.cnblogs.com/kewei/archive/2013/04/13/3018486.html组件解决方案点击下载v1.1.4https://networksocket.codeplex.com/http://proxy 阅读全文
posted @ 2013-04-13 15:29 jiulang 阅读(2071) 评论(3) 推荐(1) 编辑