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

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

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
主站蜘蛛池模板: 欧美夜夜精品一级爽 | 成人另类视频 | 国内精品在线观看视频 | 免费抽搐一进一出印度 | 超级碰碰青草免费视频92 | 海绵宝宝第二季全集免费观看 | 免费看打屁股视频的软件 | 四虎网站最新网址 | 91视频破解 | 国产成人免费高清激情明星 | www.色.con | 国产精品一区二区三区免费视频 | 国产精品污双胞胎在线观看 | 91人人| 免费视频专区一国产盗摄 | 亚洲免费精品视频 | 视频一区二区三区在线观看 | 精品久久久久香蕉网 | 999久久久免费精品国产牛牛 | 91精品国产高清久久久久久91 | 果冻传媒在线观看的 | 国产精品吹潮香蕉在线观看 | 免费一级片在线观看 | 欧美疯狂做爰3xxx | 欧美一级专区免费大片俄罗斯 | 免费在线观看日韩 | 男人的天堂久久精品激情a 男人的天堂va | 国产午夜亚洲精品 | 欧美成人免费观看的 | 男人的天堂va | 午夜伦理电影在线观免费 | 久青草国产在视频在线观看 | 91在线高清视频 | 久久88综合| 国产精品视频一区二区三区不卡 | 亚州精品永久观看视频 | 情侣宾馆愉拍自拍视频 | 国内精品视频一区二区三区八戒 | 欧美人伦禁忌.5 | 91视频一区 | 欧美性高清另类videosex死尸 |