最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年01月24日 10:10:30   作者:黃昏前黎明后  
本文的控制臺項目是根據(jù)SuperSocket官方Telnet示例代碼進行調(diào)試的,官方示例代碼:Telnet示例。下面跟著小編一起來看下吧

本文的控制臺項目是根據(jù)SuperSocket官方Telnet示例代碼進行調(diào)試的,官方示例代碼:Telnet示例。

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

創(chuàng)建控制臺項目:打開vs程序,文件=》新建=》項目

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

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

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

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

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

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

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

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

運行項目:

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

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

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

appServer.NewSessionConnected += new SessionHandler(appServer_NewSessionConnected);

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

  static void appServer_NewSessionConnected(AppSession session)
  {
   session.Send("Welcome to SuperSocket Telnet Server!");
  }

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

安裝完成后,先運行telnet服務(wù)器

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

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

4、處理客戶端發(fā)送的信息,我繼續(xù)拷貝代碼

/// <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;
   }
  }

客戶端發(fā)送請求處理

5、注冊請求事件

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

運行效果:

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

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

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • C#使用SqlConnection連接到SQL Server的代碼示例

    C#使用SqlConnection連接到SQL Server的代碼示例

    這篇文章主要介紹了C#使用SqlConnection連接到SQL Server的代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • C# 使用HttpClient上傳文件并附帶其他參數(shù)的步驟

    C# 使用HttpClient上傳文件并附帶其他參數(shù)的步驟

    這篇文章主要介紹了C# 使用HttpClient上傳文件并附帶其他參數(shù)的步驟,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • 基于C# 生成Zip壓縮包代碼

    基于C# 生成Zip壓縮包代碼

    壓縮包制作也是很多項目中需要用到的功能。接下來通過本文給大家介紹基于C# 生成Zip壓縮包代碼,對c生成zip壓縮包相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • 深入分析緩存依賴中cachedependency對象及周邊小講

    深入分析緩存依賴中cachedependency對象及周邊小講

    本篇文章是對緩存依賴中cachedependency對象進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#中WinForm控件的拖動和縮放的實現(xiàn)代碼

    C#中WinForm控件的拖動和縮放的實現(xiàn)代碼

    本篇文章主要介紹了C#中WinForm控件的拖動和縮放的實現(xiàn)代碼,C# WinForm控件的拖動和縮放是個很有用的功能,有興趣的可以了解一下。
    2017-01-01
  • C#判斷密碼強度的方法

    C#判斷密碼強度的方法

    這篇文章主要介紹了C#判斷密碼強度的方法,較為詳細(xì)的分析了C#判斷密碼強度的原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#異步編程幾點需要注意的地方

    C#異步編程幾點需要注意的地方

    這篇文章我們來討論下關(guān)于C#異步編程幾個不成文的建議,希望對你寫出高性能的異步編程代碼有所幫助
    2020-05-05
  • C#操作圖片讀取和存儲SQLserver實現(xiàn)代碼

    C#操作圖片讀取和存儲SQLserver實現(xiàn)代碼

    用C#將Image轉(zhuǎn)換成byte[]并插入數(shù)據(jù)庫/將圖片數(shù)據(jù)從SQLserver中取出來并顯示到pictureBox控件上,接下來將為你詳細(xì)介紹下實現(xiàn)步驟,感興趣的你可以參考下
    2013-03-03
  • C#信號量用法簡單示例

    C#信號量用法簡單示例

    這篇文章主要介紹了C#信號量用法,結(jié)合簡單C#控制臺應(yīng)用程序形式分析了信號量的功能、定義、調(diào)用、釋放等操作技巧,需要的朋友可以參考下
    2016-07-07
  • C#將html table 導(dǎo)出成excel實例

    C#將html table 導(dǎo)出成excel實例

    C#將html table 導(dǎo)出成excel實例,需要的朋友可以參考一下
    2013-04-04

最新評論

英德市| 泗阳县| 土默特右旗| 广南县| 阿拉善左旗| 莱阳市| 诸城市| 孝感市| 将乐县| 济宁市| 鹰潭市| 泰兴市| 陇南市| 子洲县| 隆德县| 乐至县| 通山县| 门头沟区| 平安县| 兴宁市| 金乡县| 宁蒗| 红安县| 乌海市| 黄冈市| 三河市| 高要市| 天祝| 萍乡市| 丹寨县| 邢台市| 中牟县| 正安县| 团风县| 会泽县| 建瓯市| 辉县市| 赤水市| 娄烦县| 庐江县| 祁东县|