diff --git a/Directory.Packages.props b/Directory.Packages.props
index 609690110..df58dd5a3 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -18,6 +18,7 @@
+
diff --git a/src/SuperSocket.Connection/PipeConnection.cs b/src/SuperSocket.Connection/PipeConnection.cs
index 1e3d2922b..f1d3393a6 100644
--- a/src/SuperSocket.Connection/PipeConnection.cs
+++ b/src/SuperSocket.Connection/PipeConnection.cs
@@ -162,7 +162,7 @@ protected async ValueTask ProcessOutputRead(PipeReader reader)
{
try
{
- await SendOverIOAsync(buffer, CancellationToken.None).ConfigureAwait(false); ;
+ await SendOverIOAsync(buffer, CancellationToken.None).ConfigureAwait(false);
UpdateLastActiveTime();
}
catch (Exception e)
diff --git a/src/SuperSocket.Connection/Sockets/SocketSender.cs b/src/SuperSocket.Connection/Sockets/SocketSender.cs
new file mode 100644
index 000000000..f1d7b482e
--- /dev/null
+++ b/src/SuperSocket.Connection/Sockets/SocketSender.cs
@@ -0,0 +1,108 @@
+using System;
+using System.Buffers;
+using System.Collections.Generic;
+using System.Net.Sockets;
+using System.Runtime.InteropServices;
+using System.Threading;
+using System.Threading.Tasks.Sources;
+using Microsoft.Extensions.ObjectPool;
+
+namespace SuperSocket.Connection
+{
+ public class SocketSender : SocketAsyncEventArgs, IValueTaskSource, IResettable
+ {
+ private Action