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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM