@@ -345,12 +345,31 @@ public async Task FixLengthDataPackageHandler_Sticky()
345345 var port = 8885 ;
346346 var server = StartTcpServer ( port , MockStickyPackageAsync ) ;
347347 var client = CreateClient ( ) ;
348+ var tcs = new TaskCompletionSource ( ) ;
349+ var receivedBuffer = new byte [ 1024 ] ;
348350
349351 // 连接 TCP Server
350352 var connect = await client . ConnectAsync ( "localhost" , port ) ;
351353
352- var tcs = new TaskCompletionSource ( ) ;
353- ReadOnlyMemory < byte > receivedBuffer = ReadOnlyMemory < byte > . Empty ;
354+ // 设置数据适配器
355+ var adapter = new DataPackageAdapter
356+ {
357+ DataPackageHandler = new FixLengthDataPackageHandler ( 7 ) ,
358+ ReceivedCallBack = buffer =>
359+ {
360+ // buffer 即是接收到的数据
361+ buffer . CopyTo ( receivedBuffer ) ;
362+ receivedBuffer = receivedBuffer [ ..buffer . Length ] ;
363+ tcs . SetResult ( ) ;
364+ return ValueTask . CompletedTask ;
365+ }
366+ } ;
367+
368+ client . ReceivedCallBack = async buffer =>
369+ {
370+ // 将接收到的数据传递给 DataPackageAdapter
371+ await adapter . ReceiveAsync ( buffer ) ;
372+ } ;
354373
355374 // 发送数据
356375 var data = new ReadOnlyMemory < byte > ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
@@ -361,7 +380,9 @@ public async Task FixLengthDataPackageHandler_Sticky()
361380
362381 // 验证接收到的数据
363382 Assert . Equal ( receivedBuffer . ToArray ( ) , [ 1 , 2 , 3 , 4 , 5 , 3 , 4 ] ) ;
364- receivedBuffer = ReadOnlyMemory < byte > . Empty ;
383+
384+ // 重置接收缓冲区
385+ receivedBuffer = new byte [ 1024 ] ;
365386 tcs = new TaskCompletionSource ( ) ;
366387
367388 // 等待第二次数据
0 commit comments