国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

SuperSocket入門--Telnet服務器和客戶端請求處理

2020-01-24 00:49:14
字體:
來源:轉載
供稿:網友

本文的控制臺項目是根據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組件和文件

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

 /// <summary>/// SuperSocket服務啟動或停止/// </summary>/// <param name="args"></param>static void Main(string[] args){Console.WriteLine("請按任何鍵進行啟動SuperSocket服務!");Console.ReadKey();Console.WriteLine();var appServer = new AppServer();//啟動應用服務端口if (!appServer.Setup(2017)) //啟動時監聽端口2017{Console.WriteLine("服務端口啟動失敗!");Console.ReadKey();return;}Console.WriteLine();//嘗試啟動應用服務if (!appServer.Start()){Console.WriteLine("服務啟動失敗!");Console.ReadKey();return;}Console.WriteLine("服務啟動成功,請按'E'停止服務!");while (Console.ReadKey().KeyChar != 'E'){Console.WriteLine();continue;}//停止服務appServer.Stop();Console.WriteLine("服務已停止!");Console.ReadKey();}

運行項目:

運行成功后可以查看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、處理客戶端發送的信息,我繼續拷貝代碼

/// <summary>  ///客戶端請求處理  /// </summary>  /// <param name="session">會話</param>  /// <param name="requestInfo">請求信息</param>  static void appServer_NewRequestReceived(AppSession session, StringRequestInfo requestInfo)  {   switch (requestInfo.Key.ToUpper())   {    case ("ECHO"):     session.Send(requestInfo.Body);     break;    case ("ADD"):     session.Send(requestInfo.Parameters.Select(p => Convert.ToInt32(p)).Sum().ToString());     break;    case ("MULT"):     var result = 1;     foreach (var factor in requestInfo.Parameters.Select(p => Convert.ToInt32(p)))     {      result *= factor;     }     session.Send(result.ToString());     break;   }  }

客戶端發送請求處理

5、注冊請求事件

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

運行效果:

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

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

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肇源县| 九江市| 灵台县| 湟源县| 建德市| 黄浦区| 夏邑县| 昌邑市| 两当县| 博客| 柳林县| 文登市| 虞城县| 增城市| 噶尔县| 古浪县| 江津市| 大悟县| 宁国市| 呼图壁县| 天全县| 莆田市| 洛川县| 古田县| 襄樊市| 乐昌市| 巴东县| 崇州市| 辰溪县| 潼南县| 潢川县| 张北县| 呼伦贝尔市| 通城县| 贡山| 临湘市| 千阳县| 阿拉善盟| 溧阳市| 林甸县| 东乡|