Fork me on GitHub
摘要: SuperSocket中连接过滤器(Connection Filter)是用与对客户端连接进行过滤的接口。通过连接过滤器, 你可以允许或者禁止指定来源的客户端对服务器进行连接。连接过滤器Connection Filter接口:/// <summary>/// 默认连接过滤器/// </summary>public interface IConnectionFilter{ /// <summary> /// 初始化连接过滤器 /// </summary> /// <param name="name">名称</p 阅读全文
posted @ 2013-04-02 22:59 逗豆豆 阅读(399) 评论(0) 推荐(0) 编辑
摘要: SuperSocket的命令过滤功能看起来像ASP.NET MVC中的行为过滤器, 你可以用它来拦截执行命令, 命令过滤器将在命令执行前或之后被调用.命令过滤器类必须从属性CommandFilterAttribute继承:/// <summary>/// 命令过滤器属性/// </summary>[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]public abstract class CommandFilterAttribute : Attribute{ /// <summary> 阅读全文
posted @ 2013-03-19 22:44 逗豆豆 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 当你通过SuperSocket实现你的socket服务端, 不可避免的要在配置文件中定义一些参数.SuperSocket提供了一个非常简单的方法来存储您的配置文件中的参数然后读取并在AppServer中使用他们.请看看下面的配置代码:<server name="FlashPolicyServer" serverType="SuperSocket.Facility.PolicyServer.FlashPolicyServer, SuperSocket.Facility" ip="Any" port="843" 阅读全文
posted @ 2013-03-13 23:40 逗豆豆 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 通过会话对象发送数据到客户端说了这么多, AppSession代表逻辑上的socket连接,基于连接的操作应在该类中定义. AppSession也封装了socket发送数据的方法. 您可以使用AppSession的方法“Send(...)”将数据发送到客户端:session.Send(data, 0, data.Length);或者session.Send("Welcome to use SuperSocket!");获取会话的SessionID正如在以前的部分,如果你有连接的会话实例, 那么你可以通过方法“Send(..)”发送数据到客户端. 但是在某些情况下, 你不能直 阅读全文
posted @ 2013-03-13 23:21 逗豆豆 阅读(811) 评论(2) 推荐(0) 编辑
摘要: AppSession 的虚方法有OnSessionStarted() 和 OnSessionClosed(CloseReason reason)当一个新的会话请求或会话断开,你可以重写基类的虚方法OnSessionStarted()和OnSessionClosed(CloseReason reason)做一些业务的操作:public class TelnetSession : AppSession<TelnetSession>{ protected override void OnSessionStarted() { this.Send("Welcome to Sup.. 阅读全文
posted @ 2013-03-13 22:35 逗豆豆 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 阅读以前的文档后,你可能会发现使用SuperSocket实现自己的协议对你可能是不容易的。为了使这项工作更容易,SuperSocket提供了一些常用的协议工具,你可以很容易和快速的用它来建立自己的协议,。终端协议类似的命令行协议,有些协议使用一个终端识别请求。例如,一个协议使用两个字符“##”作为结束,那么你可以使用“TerminatorReceiveFilterFactory”类:/// <summary>/// 终端协议服务器/// 每个终端请求以 “##” 结束/// ECHO 你的消息 ##/// </summary>public class Terminato 阅读全文
posted @ 2013-03-13 22:20 逗豆豆 阅读(905) 评论(0) 推荐(0) 编辑
摘要: 你为什么要使用自己的通讯协议?通信协议用于转换接收到的二进制数据为你的应用程序可以理解的数据。SuperSocket提供了一个内置的通信协议“命令行协议”,它定义了每个请求都必须一个回车符“\ r\ n”结束。但是,一些应用程序不能使用“命令行协议”的原因有很多。在这种情况下,你需要使用下面的工具实现自己的通信协议:* RequestInfo* ReceiveFilter* ReceiveFilterFactory* AppServer and AppSessionRequestInfoRequestInfo是从客户端请求的实体类. 每个客户端的请求将会以RequestInfo被实例化.该Re 阅读全文
posted @ 2013-01-18 00:05 逗豆豆 阅读(1340) 评论(0) 推荐(1) 编辑
摘要: 什么是协议?“协议”是什么?很多人可能会回答“TCP”或“UDP”. 但是,建立一个网络应用程序,TCP或UDP是不够的. TCP和UDP是传输层协议.如果你只定义了传输层的协议. 想让两个端点之间在网络上会话,这是远远不够的,你需要定义你的应用层协议,将接收到的二进制数据转换为您的应用程序可以理解的。内置的命令行协议命令行协议是一种广泛使用的协议,很多协议,如Telnet,SMTP,POP3和FTP协议是基于命令行协议等.如果你没有一个自定义的协议,SuperSocket将使用默认的命令行协议,这种协议能够简化开发。命令行协议定义了每个请求都必须一个回车符“\ r\ n”结束。如果你在Sup 阅读全文
posted @ 2013-01-17 23:35 逗豆豆 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 创建一个控制台项目,并添加引用SuperSocket创建一个“控制台应用程序”项目。创建项目后,你应该根据“客户端配置文件”改变这个项目的目标framework。因为这样应用程序将会作为Server运行并且“客户端配置文件”不用编译添加项目引用(SuperSocket.Common.dll, SuperSocket.SocketBase.dll, SuperSocket.SocketEngine.dll)添加 log4net.dll 到项目引用,因为SuerSocket用 它作为默认的日志框架log4net.config配置包含在SuperSocket所提供的项目文件夹中的“Config”,并 阅读全文
posted @ 2013-01-16 21:31 逗豆豆 阅读(1167) 评论(4) 推荐(2) 编辑
摘要: 日期转化一为了达到不同的显示效果有时,我们需要对时间进行转化,默认格式为:2007-01-0314:33:34,要转化为其他格式,要用到DateTime.ToString的方法(String,IFormatProvider),如下所示:usingSystem;usingSystem.Globaliz... 阅读全文
posted @ 2012-12-26 17:53 逗豆豆 阅读(257) 评论(0) 推荐(0) 编辑