@@ -53,29 +53,11 @@ public class NetClient
5353 private bool _isConnected ;
5454 private int _sending ;
5555
56- private readonly SocketAsyncEventArgs _receiveArg ;
57- private readonly SocketAsyncEventArgs _sendArg ;
58- private readonly ArrayBufferWriter < byte > _receivedData ;
56+ private SocketAsyncEventArgs _receiveArg ;
57+ private SocketAsyncEventArgs _sendArg ;
58+ private ArrayBufferWriter < byte > _receivedData ;
5959 private byte [ ] _tempSendBuffer ;
6060
61- /// <summary>
62- /// Create a new instance of NetClient
63- /// </summary>
64- /// <param name="bufferSize"></param>
65- public NetClient ( int bufferSize = 1024 )
66- {
67- _receivedData = new ArrayBufferWriter < byte > ( bufferSize ) ;
68-
69- _receiveArg = new SocketAsyncEventArgs ( ) ;
70- _receiveArg . SetBuffer ( new byte [ bufferSize ] , 0 , bufferSize ) ;
71- _receiveArg . UserToken = this ;
72- _receiveArg . Completed += HandleReadWrite ;
73-
74- _sendArg = new SocketAsyncEventArgs ( ) ;
75- _sendArg . UserToken = this ;
76- _sendArg . Completed += HandleReadWrite ;
77- }
78-
7961 /// <summary>
8062 /// Add a middleware to the client
8163 /// </summary>
@@ -99,8 +81,9 @@ public void RemoveMiddleware(INetMiddleware middleware)
9981 /// </summary>
10082 /// <param name="ip"></param>
10183 /// <param name="port"></param>
84+ /// <param name="bufferSize"></param>
10285 /// <exception cref="InvalidOperationException"></exception>
103- public void Connect ( string ip , int port )
86+ public void Connect ( string ip , int port , int bufferSize = 1024 )
10487 {
10588 if ( _isConnected )
10689 {
@@ -112,6 +95,17 @@ public void Connect(string ip, int port)
11295 _isConnected = true ;
11396 Ip = ( ( System . Net . IPEndPoint ) _socket . RemoteEndPoint ! ) . Address . ToString ( ) ;
11497
98+ _receivedData = new ArrayBufferWriter < byte > ( bufferSize ) ;
99+
100+ _receiveArg = new SocketAsyncEventArgs ( ) ;
101+ _receiveArg . SetBuffer ( new byte [ bufferSize ] , 0 , bufferSize ) ;
102+ _receiveArg . UserToken = this ;
103+ _receiveArg . Completed += HandleReadWrite ;
104+
105+ _sendArg = new SocketAsyncEventArgs ( ) ;
106+ _sendArg . UserToken = this ;
107+ _sendArg . Completed += HandleReadWrite ;
108+
115109 OnConnected ? . Invoke ( ) ;
116110
117111 if ( ! _socket . ReceiveAsync ( _receiveArg ) )
@@ -124,8 +118,9 @@ public void Connect(string ip, int port)
124118 /// When a server accepts a connection, use this method to connect the client
125119 /// </summary>
126120 /// <param name="socket"></param>
121+ /// <param name="bufferSize"></param>
127122 /// <exception cref="InvalidOperationException"></exception>
128- internal void Connect ( Socket socket )
123+ internal void Connect ( Socket socket , int bufferSize = 1024 )
129124 {
130125 if ( _isConnected )
131126 {
@@ -135,6 +130,17 @@ internal void Connect(Socket socket)
135130 _socket = socket ;
136131 _isConnected = true ;
137132 Ip = ( ( System . Net . IPEndPoint ) socket . RemoteEndPoint ! ) . Address . ToString ( ) ;
133+
134+ _receivedData = new ArrayBufferWriter < byte > ( bufferSize ) ;
135+
136+ _receiveArg = new SocketAsyncEventArgs ( ) ;
137+ _receiveArg . SetBuffer ( new byte [ bufferSize ] , 0 , bufferSize ) ;
138+ _receiveArg . UserToken = this ;
139+ _receiveArg . Completed += HandleReadWrite ;
140+
141+ _sendArg = new SocketAsyncEventArgs ( ) ;
142+ _sendArg . UserToken = this ;
143+ _sendArg . Completed += HandleReadWrite ;
138144
139145 OnConnected ? . Invoke ( ) ;
140146
0 commit comments