日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[SSCore] 开源dotnet core 版本 SuperSocket

發布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [SSCore] 开源dotnet core 版本 SuperSocket 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言碎語

最近一直在做舊版本dotnet 程序遷移至dotnet core的工作, 非常欣慰dotnet社區的蓬勃發展, 目前大部分的第三方類庫或開源代碼都有了dotnet core版本 或者可以方便的找到替代方案. 這其中我唯一覺得遺憾的是dotnet 社區大名鼎鼎的socket 通訊框架SuperSocket


SuperSocket是啥?

引用SuperSocket官方介紹:
SuperSocket是一個輕量級, 跨平臺而且可擴展的 .Net/Mono Socket 服務器程序框架。你無須了解如何使用 Socket, 如何維護 Socket 連接和 Socket 如何工作,但是你卻可以使用 SuperSocket 很容易的開發出一款 Socket 服務器端軟件,例如游戲服務器,GPS 服務器, 工業控制服務和數據采集服務器等等。

從技術的角度來看, SuperSocket是基于.NET IOCP的AsyncSocketEventArgs進行開發設計的Socket通訊框架. 既然是IOCP則必然是異步處理, 這樣對編程人員的門檻則比較高. SuperSocket封裝了對Socket連接的維護, 發送接收的程序邏輯. 這樣對于一般的程序開發人員大大降低了編碼門檻, 提高了開發效率.

動手來開源

一直受益于開源社區的各位大神, 也覺得自己該做些什么. 突然發現這是個機會, 便把SuperSocket代碼轉換為dotnet core 版本. 項目地址在這里SSCore. 目前還并沒有完全把SuperSocket的全部邏輯轉過來. 考慮到自己的一些需求, SuperSocket的命令模式并不適用.
所以主要是將Socket通信部分的代碼拿過來, 根據自己對這個開源庫所要面向場景的理解, 做了一些調整.

使用方法很簡單, 首先獲得一個SocketServer的實例,

? ?SocketServerBase server = new SocketServerBase(); ? ?
? ?server.NewClientAccepted += Server_NewClientAccepted; ?
? ?server.Start();

然后定義一個客戶端連接的委托實現, 主要是獲取到當前Session實例

private static void Server_NewClientAccepted(Socket client,
? ? ? ? ?ISocketSession session) {Console.WriteLine("----- new client ------------");AsyncSocketSession ass = session as AsyncSocketSession;ass.SetReceiveHandler(arg =>{Console.WriteLine("----- new receive ------------");string received = System.Text.Encoding.UTF8.GetString(arg.Buffer,
arg.Offset, arg.BytesTransferred); ? ? ?
? ? ? ? ? ?Console.WriteLine(received);ass.Send(received);});}

這里面的SetReceiveHandler是為處理接收數據而實現的回調函數.

要使用好此框架, 主要遵循以下原則:

  • AsyncSocketSession 為異步Socket連接處理的對象, 可方便的發送/接收

  • 代碼中可以對AsyncSocketSession 對象進行相應的管理

  • 注意資源的回收

  • 相關文章:

    • SuperSocket, 可擴展的 Socket 服務器框架

    • SuperSocket源碼解析之開篇

    • SuperSocket與Netty之實現protobuf協議,包括服務端和客戶端

    原文地址:http://www.jianshu.com/p/72b13fc4ae34


    .NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

    總結

    以上是生活随笔為你收集整理的[SSCore] 开源dotnet core 版本 SuperSocket的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。