SuperSocket.ClientEngine介紹


項目地址:https://github.com/kerryjiang/SuperSocket.ClientEngine

其中需要引入的SuperSocket.ProtoBase項目:SuperSocket.ProtoBase是流數據的一個協議分析庫。

地址:https://github.com/kerryjiang/SuperSocket.ProtoBase

用法:

1、根據你的網絡協議創建ReceiveFilter的實現。

SuperSocket.ClientEngine提供了一些有用的基本ReceiveFilter類(在命名空間“SuperSocket.ProtoBase”下),以幫助您簡化協議分析:

  • TerminatorReceiveFilter ,結束符協議
  • CountSpliterReceiveFilter ,固定數量分隔符協議
  • FixedSizeReceiveFilter, 固定請求大小的協議
  • BeginEndMarkReceiveFilter,帶起止符的協議
  • FixedHeaderReceiveFilter, 頭部格式固定並且包含內容長度的協議 

基於SuperSocket.ClientEngine提供的基本接收過濾器,您應該根據你自己協議的詳細信息來設計您自己的ReceiveFilter:

class MyReceiveFilter : TerminatorReceiveFilter<StringPackageInfo>
{
    public MyReceiveFilter()
    : base(Encoding.ASCII.GetBytes("||")) // two vertical bars as package terminator
    {
    }
    
    // other code you need implement according yoru protocol details
}

2、創建EasyClient實例,並使用前一步中創建的ReceiveFilter來初始化它。

var client = new EasyClient();

// Initialize the client with the receive filter and request handler
client.Initialize(new MyReceiveFilter(), (request) => {
    // handle the received request
    Console.WriteLine(request.Key);
});

3、建立連接,然后開始通信。

// Connect to the server
var connected = await client.ConnectAsync(new IPEndPoint(IPAddress.Parse("192.168.10.11"), 25));

if (connected)
{
    // Send data to the server
    client.Send(Encoding.ASCII.GetBytes("LOGIN kerry"));
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM