zoukankan      html  css  js  c++  java
  • SuperSocket快速入门(二):启动程序以及相关的配置

    如何快速启动第一个程序

    既然是快速入门,所以,对于太深奥的知识点将不做讲解,会在后续的高级应用章节中,会对SS进行拆解。所有的实例90%都是来自SS的实例,外加本人的注释进行讲解。

    一般应用而言,你只需掌握五点就够了,如果SS内置的协议模板已经够用,你可以无视第5条

    1. 如何配置AppServer的启动信息(如端口、字符编码等等。)
    2. 至少掌握一种启动SS的方式。
    3. 建立自己的应用服务器。
    4. 掌握命令和命令加载器。
    5. 掌握如何实现自定义协议

    下面是一个简单启动SS的方法,并向请求的客户端发送欢迎词的例子,启动方式为通过代码进行启动,后续的代码中,启动代码将不会有注释。

     1 static void Main(string[] args)
     2 {
     3     // 定义一个默认的应用服务器(可以理解为定义了一个Socket),默认的应用服务器的协议是命令行协议(StringRequestInfo)
     4     var appServer = new AppServer();
     5     // 将监听端口设置为2012(当然这里还有其它配置,后续高级应用文章中,将会对SS进行拆解讲解)
     6     appServer.Setup(2012);
     7     // 接收到新的客户端处理的方法,相当于Socket.Accept接收到一个客户端的连接将要做的事情。
     8     appServer.NewSessionConnected += new SessionHandler<AppSession>(appServer_NewSessionConnected);
     9     // 开始监听
    10     appServer.Start();
    11     while (Console.ReadKey().KeyChar != 'q')
    12     {
    13         Console.WriteLine();
    14         continue;
    15     }
    16     // 停止服务器。
    17     appServer.Stop();
    18 }
    19 
    20 // 当收到一个会话连接请求的方法(AppSession封装了一个客户端Socket以及实现了发送消息等方法)
    21 static void appServer_NewSessionConnected(AppSession session)
    22 {
    23     // 这里收到请求后直接发送欢迎消息,如果这里传的是中文,如果在没有配置textEncoding的情况下,客户端收到的将会是乱码,很多小伙伴都在这里出错了,原因就是编码问题。后续会做讲解。
    24     session.Send("Welcome to SuperSocket Telnet Server");
    25 }

     客户端就用Telnet吧,直接 "Win"+"R" 打开运行界面,输入"cmd",回车。出现DOS界面后输入"telnet 127.0.0.1 2012"即可,注意,win7默认是关闭telnet客户端的,需要到"控制面板"-"程序和功能"-"打开或关闭Windows功能"中,打开"telnet 客户端"功能即可使用。

    当你键入"telnet 127.0.0.1 2012"的时候,会收到"Welcome to SuperSocket Telnet Server",表示成功。

    加载配置文件快速启动程序

    SS的配置是需要在应用程序配置app.config进行配置,将上面的例子变成配置文件如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="superSocket" type="SuperSocket.SocketEngine.Configuration.SocketServiceConfig, SuperSocket.SocketEngine" />
      </configSections>
      <superSocket>
        <servers>
          <server name="TelnetServer"
                  serverType="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"
                  port="2012">
          </server>
        </servers>
      </superSocket>
    </configuration>

    最重要的是要在<configSections>节点里面配置<section name="superSocket" ...... />,并在<configuration>中添加<superSocket>方法,否则无法正常启动程序!

    关于配置文件的详细信息,点击查看官网

    下面是具体的启动代码:

     1 static void Main(string[] args)
     2 {
     3     // 通过工厂创建一个加载器。
     4     var bootstrap = BootstrapFactory.CreateBootstrap();
     5     // 初始化加载器
     6     bootstrap.Initialize();
     7     // 启动程序
     8     bootstrap.Start();
     9     while (Console.ReadKey().KeyChar != 'q')
    10     {
    11         Console.WriteLine();
    12         continue;
    13     }
    14     // 停止服务器
    15     bootstrap.Stop();
    16 }

    大家会问了,怎么上面代码中处理接收到新客户端的连接的方法怎么没有了?我要怎样处理呢?那就是下面一章我们要讲的,实现你的AppServer和AppSession。

  • 相关阅读:
    ComboBoxEdit 数据绑定 使用模板
    ObservableCollection
    ListView.MouseDoubleClick
    Style 的查找 FindResource
    OpenFileDialog
    ItemsControl
    下拉框比较符
    ListView 控件与 内容
    测试oracle数据库连接
    MySQL ERROR 1300 (HY000): Invalid utf8 character string
  • 原文地址:https://www.cnblogs.com/wkavenger/p/4660303.html
Copyright © 2011-2022 走看看