一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - SuperSocket入門--Telnet服務器和客戶端請求處理

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

2021-12-21 14:02黃昏前黎明后 C#

本文的控制臺項目是根據SuperSocket官方Telnet示例代碼進行調試的,官方示例代碼:Telnet示例。下面跟著小編一起來看下吧

本文的控制臺項目是根據supersocket官方telnet示例代碼進行調試的,官方示例代碼:telnet示例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/// <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();
}

運行項目:

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

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

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

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

appserver.newsessionconnected += new sessionhandler(appserver_newsessionconnected);

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

?
1
2
3
4
static void appserver_newsessionconnected(appsession session)
{
 session.send("welcome to supersocket telnet server!");
}

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

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

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/// <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、注冊請求事件

?
1
appserver.newrequestreceived += new requesthandler<appsession, stringrequestinfo>(appserver_newrequestreceived);

運行效果:

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

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

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

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

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

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

原文鏈接:http://www.cnblogs.com/fly-bird/p/6298254.html

延伸 · 閱讀

精彩推薦
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
主站蜘蛛池模板: xnxx动漫| 亚洲va天堂va国产va久久 | 免费人成在线观看69式小视频 | 国产精品对白刺激久久久 | 欧美一级特黄aaa大片 | 久久er99热精品一区二区 | 女人用粗大自熨喷水在线视频 | 亚洲国产日韩欧美在线vip1区 | 鬼惨笑小说 | 欧美一区二区三区免费观看视频 | 2020年精品国产午夜福利在线 | 日韩精品首页 | 手机在线免费观看视频 | 国产午夜免费视频 | 99精品国产成人一区二区在线 | 99国产高清久久久久久网站 | 成人国产网站v片免费观看 成人国产精品视频 | 97自拍视频在线观看 | 经典三级四虎在线观看 | 91精品国产综合久 | 农村妇女野战bbxxx农村妇女 | 免费特黄一级欧美大片 | 视频一区二区三区在线 | 91庥豆果冻天美精东蜜桃传媒 | 精品日韩二区三区精品视频 | 97理伦 | 亚洲精品在线免费看 | 好吊妞视频998www | 久久精品观看影院2828 | 手机在线免费观看日本推理片 | 精品福利一区二区免费视频 | 欧美男女爱爱视频 | wc凹凸撒尿间谍女厕hd | 全肉一女n男np高h双龙养成 | 午夜dj免费视频观看社区 | 国产亚洲福利一区二区免费看 | 亚洲瑟瑟网| 女医学护士一级毛片 | 九色PORNY真实丨国产大胸 | 日本不卡一区二区三区在线观看 | 九九热视频 这里有精品 |