SuperSocket學習筆記(一)-一個完整的例子


一、什么是SuperSocket

以下是作者的介紹

image

執行以下命令,獲取SuperSocket項目

$ git clone https://github.com/kerryjiang/SuperSocket

二、項目結構

image

三、開發過程

1.新建一個控制台項目ConsoleApp

1.1引用相關項目

image

1.2從Solution Items中引進日志文件

image

1.3設置SuperSocket.SocketBase45的log4net文件屬性設置為【復制到本地】

image

2.編寫Main方法

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 using SuperSocket.SocketBase;
  7 
  8 namespace ConsoleApp
  9 {
 10     class Program
 11     {
 12         static void Main(string[] args)
 13         {
 14             var appServer = new AppServer();
 15             int port = 8888;
 16             if (!appServer.Setup(port))
 17             {
 18                 Console.WriteLine("端口設置失敗");
 19                 Console.ReadKey();
 20                 return;
 21             }
 22             //連接時
 23             appServer.NewSessionConnected += appServer_NewSessionConnected;
 24             //接收信息時
 25             appServer.NewRequestReceived += appServer_NewRequestReceived;
 26             //關閉服務時
 27             appServer.SessionClosed += appServer_SessionClosed;
 28             if (!appServer.Start())
 29             {
 30                 Console.WriteLine("啟動服務失敗");
 31                 Console.ReadKey();
 32                 return;
 33             }
 34             Console.WriteLine("服務啟動成功,輸入q退出");
 35 
 36             while (true)
 37             {
 38                 var str = Console.ReadLine();
 39                 if (str.ToLower().Equals("q"))
 40                 {
 41                     break;
 42                 }
 43             }
 44             Console.WriteLine();
 45             appServer.Stop();
 46             Console.WriteLine("服務已停止,按任意鍵退出");
 47             Console.ReadKey();
 48         }
 49 
 50         private static void appServer_NewSessionConnected(AppSession session)
 51         {
 52             session.Send("Hello World!");
 53         }
 54 
 55         static void appServer_NewRequestReceived(AppSession session, SuperSocket.SocketBase.Protocol.StringRequestInfo requestInfo)
 56         {
 57             switch (requestInfo.Key.ToLower())
 58             {
 59                 case "1":
 60                     session.Send("You input 1");
 61                     break;
 62                 case "2":
 63                     session.Send("You input 2");
 64                     break;
 65                 default:
 66                     session.Send("Unknow ");
 67                     break;
 68             }
 69         }
 70 
 71         static void appServer_SessionClosed(AppSession session, CloseReason value)
 72         {
 73             session.Send("服務已關閉");
 74         }
 75     }
 76 }
 77 
View Code

3.運行項目,使用Telnet為客戶端

image

image

四.接下來就是看源碼一步一步調試了


免責聲明!

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



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