SuperSocket調試工具


       本文的控制台項目是根據SuperSocket官方Telnet示例代碼進行調試的,官方示例代碼:Telnet示例

       開始我的第一個Telnet控制台項目之旅:

       創建控制台項目:打開vs程序,文件=》新建=》項目

          

      一、下載SuperSocket的動態庫,主要有兩種方式獲取SuperSocket的動態庫。

      1、添加SuperSocket的dll文件(SuperSocket.Common.dll, SuperSocket.SocketBase.dll, SuperSocket.SocketEngine.dll)到此項目的引用,直接再官方網站上下載SuperSocket組件,引入需要dll文件即可:

           

 

     2、通過 nuget來獲取,本人也比較喜歡這種方式,可以更新組件版本。(注意:我這里使用的是vs2015可以直接打開nuget,如果使用vs舊版本的同學需要下載nuget組件)

         

         點擊瀏覽,輸入supersocket,勾選組件安裝即可

         

        添加完成組件后需要注意將config文件進行編譯成內容,log4net需要使用config文件。

       

 

        查看引入后的項目整體目錄,框紅線的為引入supersocket組件和文件

       

   二、使用官方提供的啟動服務器的代碼進行測試服務啟動和停止

     

復制代碼
 1 /// <summary>
 2 /// SuperSocket服務啟動或停止
 3 /// </summary>
 4 /// <param name="args"></param>
 5 static void Main(string[] args)
 6 {
 7 Console.WriteLine("請按任何鍵進行啟動SuperSocket服務!");
 8 
 9 Console.ReadKey();
10 Console.WriteLine();
11 
12 var appServer = new AppServer();
13 
14 //啟動應用服務端口
15 if (!appServer.Setup(2017)) //啟動時監聽端口2017
16 {
17 Console.WriteLine("服務端口啟動失敗!");
18 Console.ReadKey();
19 return;
20 }
21 
22 Console.WriteLine();
23 
24 //嘗試啟動應用服務
25 if (!appServer.Start())
26 {
27 Console.WriteLine("服務啟動失敗!");
28 Console.ReadKey();
29 return;
30 }
31 
32 Console.WriteLine("服務啟動成功,請按'E'停止服務!");
33 
34 while (Console.ReadKey().KeyChar != 'E')
35 {
36 Console.WriteLine();
37 continue;
38 }
39 
40 //停止服務
41 appServer.Stop();
42 
43 Console.WriteLine("服務已停止!");
44 Console.ReadKey();
45 }
復制代碼

 

  運行項目:

     

    運行成功后可以查看Debug文件夾下的logs日志跟蹤文件,從日志里面,我們可以看到服務器已經能啟動成功,但是這還沒有什么用,因為我們並沒有處理客戶的鏈接進來,處理客戶的發送過來的信息。根據官方文檔,我們繼續拷貝代碼來完善我們的程序。

     三、注冊客戶端鏈接和處理客戶端發送信息

       1、處理客戶端連接,注冊回話新建事件處理方法

      appServer.NewSessionConnected += new SessionHandler(appServer_NewSessionConnected);

       2、在事件處理代碼中發送歡迎信息給客戶端

      static void appServer_NewSessionConnected(AppSession session)

      {

          session.Send("Welcome to SuperSocket Telnet Server!");

      }

     3、使用Telnet客戶端進行測試(注意:使用telnet必須先安裝telnet服務)

         

         安裝完成后,先運行telnet服務器

         

 

         進行運行win+r命令窗口cmd ,輸入telnet localhost 2017。(2017是開始程序中偵聽的端口)

         

         回車,顯示歡迎語說明客戶端和服務器端進行鏈接成功。

        

        4、處理客戶端發送的信息,我繼續拷貝代碼

復制代碼
 1  /// <summary>
 2         ///客戶端請求處理
 3         /// </summary>
 4         /// <param name="session">會話</param>
 5         /// <param name="requestInfo">請求信息</param>
 6 
 7         static void appServer_NewRequestReceived(AppSession session, StringRequestInfo requestInfo)
 8         {
 9             switch (requestInfo.Key.ToUpper())
10             {
11                 case ("ECHO"):
12                     session.Send(requestInfo.Body);
13                     break;
14 
15                 case ("ADD"):
16                     session.Send(requestInfo.Parameters.Select(p => Convert.ToInt32(p)).Sum().ToString());
17                     break;
18 
19                 case ("MULT"):
20 
21                     var result = 1;
22 
23                     foreach (var factor in requestInfo.Parameters.Select(p => Convert.ToInt32(p)))
24                     {
25                         result *= factor;
26                     }
27 
28                     session.Send(result.ToString());
29                     break;
30             }
31         }
復制代碼

         5、注冊請求事件

1 appServer.NewRequestReceived += new RequestHandler<AppSession, StringRequestInfo>(appServer_NewRequestReceived);

        運行效果:

      除了使用telnet客戶端,網上還有一個tcp/udp的測試工具可以鏈接服務器

     

         今天的supersocket框架的入門學習就到這里了,本人水平和文筆有限,有錯誤的地方歡迎大家指正!

 

**********************轉載:https://www.cnblogs.com/fly-bird/p/6298254.html


免責聲明!

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



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