04 2013 档案
摘要:前言本小节是NetworkSocket系列的第10小节,在阅读本小节之前,您可能需要先阅读前面的使用FastTcpServerEx构建服务器,否则觉得本文内容跳转比较大。描述FastTcpServerEx是从TcpServerEx派生,使用的协议和TcpServerEx完成相同,FastTcpServerEx充分结合C#强大的反射功能,大大地简化了服务器编程难度,从使用FastTcpServerEx构建服务器看出中,只要定义服务接口,实现接口,就完成了服务器,这是因为利用了反射。下面是使用FastTcpServerEx构建服务器小节中中的DemoServer类图,IDemoServer里的所有
阅读全文
摘要:前言本小节是NetworkSocket系列的第9小节,在阅读本小节之前,您可能需要先阅读前面的几个小节,否则可能觉得内容跳转比较大。描述TcpServerBase<TDataEvenArgs>是所有Tcp服务器对象的基础类,它将固有的客户端连接监听、在线客户端对象维护、客户端连接断开、关闭客户端连接这些操作已经封装好,对于具体协议的服务器,只要派生于此类,编写协议描述就可以了。类图设计思路性能:TcpServerBase<TDataEventArgs>使用SocketAsyncPool<TDataEventArgs>来保存一定数量的SocketAsync&l
阅读全文
摘要:前言前面给出了几个例子如何使用NetworkSocket构建服务和客户端,但没有详细说明过NetworkSocket里的设计思路,以及几个重要对象的说明,本节将解说NetworkSocket里的最基础最重要的SocketAsync<TDataEventArgs>类。类图设计思路性能:服务器一个重要的参考点就是拼性能,SocketAsync也使用了SocketAsyncEventArgs对象作发送和接收数据,为了防止缓冲区内存碎片化,我们需要把该对象的缓冲区统一放到一块连续的内存区域,对应上图的SocketAsncBufferManage,方便:SocketAsync的目标是,给我一
阅读全文
摘要:前言在实际运用中,服务器和客户端都需要遵从某种协议,浏览器里有http协议,各路由器也有自己的协议,我们自己编写的服务器和客户端,也往往加入自己某种理解方式的协议,而NetworkSocket的TcpServerEx是使用DataEventExArgs来描述它的协议,如果我们写客户端来连接其它已有的服务器,可能需要扩展NetworkSocket了。假设现有的服务器用的协议是包长[4byte] + 实体数据[N个byte],那么我们就可以如下来实现类似的服务器和和可以与之正常通讯的客户端。编写协议描述NetworkSocket任何协议的描述都是从DataEventArgs类派生,下面我们来实现这
阅读全文
摘要:前言本小节是NetworkSocket系列的第6小节,在阅读本小节之前,您可能需要先阅读前面的几个小节,否则可能觉得内容跳转比较大。描述FastTcpServerEx是从TcpServerEx派生,使用的协议和TcpServerEx完成相同,FastTcpServerEx充分结合C#强大的反射功能,大大地简化了服务器编程难度,更符合实际通讯项目的编写,与之相比,前两章节提到的TcpServerBase和TcpServerEx构建服务器,离实际项目要求还相差很远。FastTcpServerEx的工作原理是,当收到客户端发来的数据DataEventExArgs后,分析DataEventExArgs
阅读全文
摘要:描述TcpServerEx是从TcpServerBase<DataEventExArgs>派生,它与TcpServerBase用法非常相似,不同的是它对发送的数据进行封包处理,可以和客户端之间传送复杂的实体,同时对应的SocketAsync<DataEventExArgs>扩展了发送数据的方法SendCallback,该方法发送数据到另一端后,不需要事件接收返回的数据,而是通过回调得到数据,可以在一个方法内编写更符合一般逻辑的代码风格。封包是由DataEventExArgs来描述,其代码如下:View Code using System;using System.Col
阅读全文
摘要:描述TcpServerBase是从TcpServerBase<DataEventArgs>派生面来,它只能简单的接受客户端连接、接收客户端发来的数据、向客户端发送byte[]数据,但它能保证数据的正常收发,同时维护连接的客户端的实例,TcpServerBase是使用事件驱动,当收到客户端发送过来的数据后,通过OnRecvComplete事件将数据取出,事件的第一个参数sender是触发的客户端对象,为SocketAsync<DataEventArgs>类形。构建服务器新建工程ServerBase,引用NetworkSocket.dll,引入NetworkSocket命名
阅读全文
摘要:简介NetworkSocket是基于SocketAsyncEventArgs封装Tcp通讯协议组件,其NetworkSocket.Fast层提供类似MVC功能,可实现快速编写通讯服务项目,此外NetworkSocket.WebSocket项目亦实现了websocket版本13的服务端功能。Githu...
阅读全文
摘要: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 序
阅读全文
摘要:概述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
阅读全文

浙公网安备 33010602011771号