@@ -407,13 +407,32 @@ public async Task DelimiterDataPackageHandler_Ok()
407407 var port = 8886 ;
408408 var server = StartTcpServer ( port , MockDelimiterPackageAsync ) ;
409409 var client = CreateClient ( ) ;
410+ var tcs = new TaskCompletionSource ( ) ;
411+ var receivedBuffer = new byte [ 1024 ] ;
412+
413+ // 设置数据适配器
414+ var adapter = new DataPackageAdapter
415+ {
416+ DataPackageHandler = new DelimiterDataPackageHandler ( new byte [ ] { 13 , 10 } ) ,
417+ ReceivedCallBack = buffer =>
418+ {
419+ // buffer 即是接收到的数据
420+ buffer . CopyTo ( receivedBuffer ) ;
421+ receivedBuffer = receivedBuffer [ ..buffer . Length ] ;
422+ tcs . SetResult ( ) ;
423+ return ValueTask . CompletedTask ;
424+ }
425+ } ;
426+
427+ client . ReceivedCallBack = async buffer =>
428+ {
429+ // 将接收到的数据传递给 DataPackageAdapter
430+ await adapter . ReceiveAsync ( buffer ) ;
431+ } ;
410432
411433 // 连接 TCP Server
412434 var connect = await client . ConnectAsync ( "localhost" , port ) ;
413435
414- var tcs = new TaskCompletionSource ( ) ;
415- ReadOnlyMemory < byte > receivedBuffer = ReadOnlyMemory < byte > . Empty ;
416-
417436 // 发送数据
418437 var data = new ReadOnlyMemory < byte > ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
419438 await client . SendAsync ( data ) ;
@@ -422,15 +441,15 @@ public async Task DelimiterDataPackageHandler_Ok()
422441 await tcs . Task ;
423442
424443 // 验证接收到的数据
425- Assert . Equal ( receivedBuffer . ToArray ( ) , [ 1 , 2 , 3 , 4 , 5 , 0x13 , 0x10 ] ) ;
444+ Assert . Equal ( receivedBuffer . ToArray ( ) , [ 1 , 2 , 3 , 4 , 5 , 13 , 10 ] ) ;
426445
427446 // 等待第二次数据
428- receivedBuffer = ReadOnlyMemory < byte > . Empty ;
447+ receivedBuffer = new byte [ 1024 ] ;
429448 tcs = new TaskCompletionSource ( ) ;
430449 await tcs . Task ;
431450
432451 // 验证接收到的数据
433- Assert . Equal ( receivedBuffer . ToArray ( ) , [ 5 , 6 , 0x13 , 0x10 ] ) ;
452+ Assert . Equal ( receivedBuffer . ToArray ( ) , [ 5 , 6 , 13 , 10 ] ) ;
434453
435454 // 关闭连接
436455 await client . CloseAsync ( ) ;
@@ -480,7 +499,7 @@ private static async Task MockDelimiterPackageAsync(TcpClient client)
480499 await Task . Delay ( 20 ) ;
481500
482501 // 模拟拆包发送第二段数据
483- await stream . WriteAsync ( new byte [ ] { 0x13 , 0x10 , 0x5 , 0x6 , 0x13 , 0x10 } , CancellationToken . None ) ;
502+ await stream . WriteAsync ( new byte [ ] { 13 , 10 , 0x5 , 0x6 , 13 , 10 } , CancellationToken . None ) ;
484503 }
485504 }
486505
0 commit comments