如何快速啟動第一個程序
既然是快速入門,所以,對於太深奧的知識點將不做講解,會在后續的高級應用章節中,會對SS進行拆解。所有的實例90%都是來自SS的實例,外加本人的注釋進行講解。
一般應用而言,你只需掌握五點就夠了,如果SS內置的協議模板已經夠用,你可以無視第5條。
- 如何配置AppServer的啟動信息(如端口、字符編碼等等。)
- 至少掌握一種啟動SS的方式。
- 建立自己的應用服務器。
- 掌握命令和命令加載器。
- 掌握如何實現自定義協議
下面是一個簡單啟動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。