随笔分类 - SuperSocket
About SuperSocket
摘要:SuperSocket的作者发布了2.0版本的第一个预览版。SuperSocket 2.0 是一个经过全新设计的,第一个完全基于.NET Core的版本。作者正在积极尝试提供更简单易用的API的同时,尽量保证与老版本相似的原汁原味的开发体验。新的版本中亦删除了一些不太重要并且已有更好的替代实现的功能,例如服务器宿主。
阅读全文
摘要:在历时一年开发,发布了5个测试版,经过多次跳票之后,SuperSocket 1.5 stable终于在2013年的第一个星期一发布了。较于上一个版本1.4,SuperSocket 1.5拥有更加友好的应用程序接口,而且还增加了不少实用的功能,同时还修复了众多小缺陷。这些改进把SuperSocket的产品质量带上了一个新的台阶。我们没有理由不相信,在2013年里,SuperSocket将会有很好的发展。此版本包含如下激动人心的功能:动态语言的支持。你可以使用Python(IronPython)或者其它DLR 语言来编写你的复杂多变的业务逻辑,数据通信仍旧是基于可靠的SuperSocket之上。多
阅读全文
摘要:A Telnet ExampleImplement your AppServer and AppSessionStart SuperSocket by ConfigurationSuperSocket Basic ConfigurationBuilt-in command line protocol...
阅读全文
摘要:SuperSocket 1.4 SP2终于在2012年来临之前发布了,他是一个非常重要的版本。很有可能它将是SuperSocket 1.4的最后一个release. 在明年,我将专注于SuperSocket 1.5的开发,1.5会新增几个十分重要的功能,比如动态语言的支持,客户端管理工具等等。这些新的功能将在未来的一年里通过beta发布的方式陆续和大家见面。在SuperSocket 1.4 SP2这个版本里,包含了如下更新:改进了ArraySegmentList和BinaryUtil的性能 改进了命令行协议实现的性能 新增了子配置节点的自定义功能 异步的TLS/SSL支持(通过SslStrea
阅读全文
摘要:SuperSocket 1.4 SP1修复了几个在1.4的第一个稳定版本中存在的几个bug,还增加了几个实用的小功能:修复了发送大数据量数据到客户端无法完整发送的缺陷修复了策略服务器中获取策略文件路径在某些情况下不正确的缺陷给类ArraySegementList增加了方法TrimEnd(int trimSize)给Socket会话增加了新方法SendResponse(byte[] data, int offset, int length);改进UDP 服务器实现,使其支持从应用层获取SessionKey新增禁用会话快照的支持SuperSocket 1.4 SP1 下载地址:http://sup
阅读全文
摘要:SuperSocket 1.4 stable已于今日正式发布了!下载地址为: http://supersocket.codeplex.com/releases/view/69473什么是SuperSocket?SuperSocket 是一个轻量级的,可扩展的,跨平台的.NET Socket 服务器开发框架,可用来构建一个基于命令的服务器端Socket 程序,而无需了解如何使用Socket,如何维护Socket连接,亦无需了解Socket是如何工作的。该项目使用纯 C# 开发,易于扩展和集成到已有的项目。只要你的已有系统(forum/CRM/MIS/HRM/ERP)是使用.NET开发的,你都能够
阅读全文
摘要:SuperSocket内置了日志功能,你只需通过下面两个步骤来启用它:1) 包含SuperSocket提供的配置文件log4net.config到你的启动程序的/Config目录2) 如果你用自定义容器运行SuperSocket,请确认您添加了LogUtil.Setup(); 这段代码到程序入口位置,用于启用SuperSocket日志功能SuperSocket的AppServer和AppSession都有Logger属性,你可以直接使用他们来记录日志。SuperSocket的日志是以文件的形式存放在运行目录的Logs子目录里面,Log相关的配置请参考文档http://www.cnblogs.c
阅读全文
摘要:AppServer内置了一个高效Session容器,允许你通过多种方式来获取你想要的Session并进行通信。获取指定SessionKey的Sessionvar session = appServer.GetAppSessionByIndentityKey(sessionKey);if(session != null) session.SendResponse("Hello world!");实时的从Session容器中获取。获取所有连接上的Sessionvar sessions = appServer.GetAllSessions();foreach(var s in s
阅读全文
摘要:Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难以避免。SuperSocket内置了命令行格式的协议CommandLineProtocol,如果你的用用使用了其它格式的协议,你就必须自行实现自定义协议CustomProtocol。实现自定义协议实现自定义协议需要实现ICustomProtocol的Protocol类,和一个实现ICommandReader接口的CommandReader类。public interface ICustomProtocol<TCommandInfo> where
阅读全文
摘要:应用层协议是Socket通信的基础, 而SuperSocket直接内建了命令行协议(CommandLineProtocol)。命令行协议是一种应用非常广泛的协议,例如我们常见的Telnet, SMTP, POP3和FTP等等都是以命令行协议为基础的。如果你没有自定义协议的话,SuperSocket默认的协议就是命令行协议 ,这样就极大的简化了基于此类协议的开发。命令行协议的StringCommandInfo命令行协议的CommandInfo是StringCommandInfo这个类型:public class StringCommandInfo{ string Key { get; se...
阅读全文
摘要:大部分的业务逻辑代码应该放在Command里面。Command会由SuperSocket引擎根据收到的CommandInfo的Key来自动的执行。例如,客户端向SuperSocket发送一个以ECHO为Key的Command时, 如"ECHO I love you\r\n",名为ECHO的Command就会被执行。Echo命令定义如下:public class ECHO : StringCommandBase<EchoSession>{ #region CommandBase<EchoSession> Members public override
阅读全文
摘要:在SocketService中运行你的AppServerSuperSocket 提供了一个名叫"SocketService"的项目,它是一个能够让AppServer运行于其中的容器。 SocketService能够使你的AppServer 以控制台或者windows服务的形式运行 (需注册)。有两种方法可以让你的AppServer运行于SocketService之中:复制你的AppServer的dll输出到SocketService的编译输出目录在你的AppServer项目中引用SocketService 项目。如果你是用这种方式,你需要新建一个名为"SuperS
阅读全文
摘要:什么是AppSession?AppSession 代表一个和客户端的逻辑连接,基于连接的操作应该定于在该类之中。你可以用该类的实例发送数据到客户端,接收客户端发送的数据或者关闭连接。什么是AppServer?AppServer 代表了监听客户端连接,承载TCP连接的服务器实例。理想情况下,我们可以通过AppServer实例获取任何你想要的客户端连接,服务器级别的操作和逻辑应该定义在此类之中。创建你的AppSession现在,我们以EchoServer为例:using System;using System.Collections.Generic;using System.Linq;using
阅读全文
摘要:配置文件示例<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="socketServer" type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine"/> </configSections> <appSett
阅读全文
摘要:SuperSocket架构图 SuperSocket 1.4系列文档(1) 第一个例子,EchoServiceSuperSocket 1.4系列文档(2) SuperSocket的基本配置SuperSocket 1.4系列文档(3) 使用SuperSocket的第一步,实现你自己的AppServer和AppSessionSuperSocket 1.4系列文档(4) 使你的SuperSocket AppServer运行SuperSocket 1.4系列文档(5) 实现你的Socket命令SuperSocket 1.4系列文档(6) 在AppSession和Commands中访问AppServer
阅读全文
摘要:发布地址:http://miasocks.codeplex.com/releases/view/62174It is a .NET SOCKS Server Implementation base onSuperSocket.Support Socks4 nowSupport cascade proxyInclude a Socks4 clientIn the future:It will support Socks4a and Socks5
阅读全文
摘要:SuperSocket 1.3 stable 近期正式发布了!http://supersocket.codeplex.com/releases/view/59310Bug修复:修复了一个潜在的在停止server之后没有没有更新server的running state的bug修复了在清除超时session时同步的bug修复了ArraySegmentList的一个bug修复了一个获取配置参数的bug修复了一个QuickStart示例项目中的bug修复了一个在同步模式下课护短关闭连接会导致服务器CPU占用率过高的bug修复了一个用LINQ语句复制缓冲区readBuffer.Skip(x).Take(
阅读全文
摘要:为便于管理,SuperSocket的测试版发布将不再单独发博文,而是直接以最新在前的顺序汇总在此博文之中。
阅读全文
摘要:SuperSocket今天发布了1.3的第一个测试版,1.3版本会在发布2-3个测试版之后正式release.
此版本包含更新如下:
新功能:
* 新增UDP socket的支持
* 新增自定义协议支持(二进制协议和其它更复杂的协议)
* 在同步模式下支持SSL/TLS加密传输
Bug修复:
* 修复了一个潜在的在停止server之后没有没有更新server的running state的bug
* 修复了在清除超时session时同步的bug
* 修复了ArraySegmentList的一个bug
* 修复了一个获取配置参数的bug
第三方类库升级:
* upgraded SuperSocket to .NET 4.0
* upgraded EntLib 4.1 to 5.0
阅读全文
摘要:SuperSocket 1.0今天发布了SP1版本,用来修复1.0 stable发布之后所发现的bug.
该版本所修复的bug如下:
修复了一个潜在的在停止server之后没有没有更新server的running state的bug
修复了在清除超时session时同步的bug
修复了ArraySegmentList的一个bug
修复了一个获取配置参数的bug
阅读全文