99 using System . Text ;
1010 using System . Text . RegularExpressions ;
1111 using System . Threading ;
12- using System . Runtime . Remoting . Messaging ;
1312
1413 using MessageID = System . UInt16 ;
1514 using MessageLength = System . UInt16 ;
@@ -31,7 +30,7 @@ public abstract class NetworkInterfaceBase
3130 protected Socket _socket = null ;
3231 protected PacketReceiverBase _packetReceiver = null ;
3332 protected PacketSenderBase _packetSender = null ;
34- protected EncryptionFilter _filter = null ;
33+ protected EncryptionFilter _filter = null ;
3534
3635 public bool connected = false ;
3736
@@ -41,6 +40,7 @@ public class ConnectState
4140 public string connectIP = "" ;
4241 public int connectPort = 0 ;
4342 public ConnectCallback connectCB = null ;
43+ public AsyncConnectMethod caller = null ;
4444 public object userData = null ;
4545 public Socket socket = null ;
4646 public NetworkInterfaceBase networkInterface = null ;
@@ -88,18 +88,18 @@ public virtual void reset()
8888 }
8989
9090
91- public virtual void close ( )
92- {
93- if ( _socket != null )
91+ public virtual void close ( )
92+ {
93+ if ( _socket != null )
9494 {
9595 _socket . Close ( 0 ) ;
9696 _socket = null ;
9797 Event . fireAll ( EventOutTypes . onDisconnected ) ;
98- }
98+ }
9999
100- _socket = null ;
101- connected = false ;
102- }
100+ _socket = null ;
101+ connected = false ;
102+ }
103103
104104 protected abstract PacketReceiverBase createPacketReceiver ( ) ;
105105 protected abstract PacketSenderBase createPacketSender ( ) ;
@@ -186,14 +186,13 @@ protected virtual void onAsyncConnectCB(ConnectState state)
186186 private void _asyncConnectCB ( IAsyncResult ar )
187187 {
188188 ConnectState state = ( ConnectState ) ar . AsyncState ;
189- AsyncResult result = ( AsyncResult ) ar ;
190- AsyncConnectMethod caller = ( AsyncConnectMethod ) result . AsyncDelegate ;
189+
191190 onAsyncConnectCB ( state ) ;
192191
193192 Dbg . DEBUG_MSG ( string . Format ( "NetworkInterfaceBase::_asyncConnectCB(), connect to '{0}:{1}' finish. error = '{2}'" , state . connectIP , state . connectPort , state . error ) ) ;
194193
195194 // Call EndInvoke to retrieve the results.
196- caller . EndInvoke ( ar ) ;
195+ state . caller . EndInvoke ( ar ) ;
197196 Event . fireIn ( "_onConnectionState" , new object [ ] { state } ) ;
198197 }
199198
@@ -210,22 +209,24 @@ public void connectTo(string ip, int port, ConnectCallback callback, object user
210209
211210 _socket = createSocket ( ) ;
212211
212+ AsyncConnectMethod asyncConnectMethod = new AsyncConnectMethod ( this . _asyncConnect ) ;
213+
213214 ConnectState state = new ConnectState ( ) ;
214215 state . connectIP = ip ;
215216 state . connectPort = port ;
216217 state . connectCB = callback ;
217218 state . userData = userData ;
218219 state . socket = _socket ;
219220 state . networkInterface = this ;
221+ state . caller = asyncConnectMethod ;
220222
221223 Dbg . DEBUG_MSG ( "connect to " + ip + ":" + port + " ..." ) ;
222224 connected = false ;
223225
224226 // 先注册一个事件回调,该事件在当前线程触发
225227 Event . registerIn ( "_onConnectionState" , this , "_onConnectionState" ) ;
226228
227- var v = new AsyncConnectMethod ( this . _asyncConnect ) ;
228- v . BeginInvoke ( state , new AsyncCallback ( this . _asyncConnectCB ) , state ) ;
229+ asyncConnectMethod . BeginInvoke ( state , new AsyncCallback ( this . _asyncConnectCB ) , state ) ;
229230 }
230231
231232 public virtual bool send ( MemoryStream stream )
@@ -238,10 +239,10 @@ public virtual bool send(MemoryStream stream)
238239 if ( _packetSender == null )
239240 _packetSender = createPacketSender ( ) ;
240241
241- if ( _filter != null )
242- return _filter . send ( _packetSender , stream ) ;
242+ if ( _filter != null )
243+ return _filter . send ( _packetSender , stream ) ;
243244
244- return _packetSender . send ( stream ) ;
245+ return _packetSender . send ( stream ) ;
245246 }
246247
247248 public virtual void process ( )
@@ -254,14 +255,14 @@ public virtual void process()
254255 }
255256
256257
257- public EncryptionFilter fileter ( )
258- {
259- return _filter ;
260- }
258+ public EncryptionFilter fileter ( )
259+ {
260+ return _filter ;
261+ }
261262
262- public void setFilter ( EncryptionFilter filter )
263- {
264- _filter = filter ;
265- }
266- }
263+ public void setFilter ( EncryptionFilter filter )
264+ {
265+ _filter = filter ;
266+ }
267+ }
267268}
0 commit comments