Skip to content

Commit c67c1ba

Browse files
committed
unity sdk .net4.x支持 #1148
1 parent 8494c76 commit c67c1ba

File tree

9 files changed

+32
-40
lines changed

9 files changed

+32
-40
lines changed

Assets/Plugins/kbengine_unity3d_plugins/NetworkInterfaceBase.cs

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
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;
@@ -41,7 +40,8 @@ public class ConnectState
4140
public string connectIP = "";
4241
public int connectPort = 0;
4342
public ConnectCallback connectCB = null;
44-
public object userData = null;
43+
public AsyncConnectMethod caller = null;
44+
public object userData = null;
4545
public Socket socket = null;
4646
public NetworkInterfaceBase networkInterface = null;
4747
public string error = "";
@@ -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

213-
ConnectState state = new ConnectState();
212+
AsyncConnectMethod asyncConnectMethod = new AsyncConnectMethod(this._asyncConnect);
213+
214+
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
}

Assets/Plugins/kbengine_unity3d_plugins/NetworkInterfaceKCP.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
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;

Assets/Plugins/kbengine_unity3d_plugins/NetworkInterfaceTCP.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
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;

Assets/Plugins/kbengine_unity3d_plugins/PacketReceiverBase.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Text;
99
using System.Text.RegularExpressions;
1010
using System.Threading;
11-
using System.Runtime.Remoting.Messaging;
1211

1312
using MessageID = System.UInt16;
1413
using MessageLength = System.UInt16;
@@ -19,7 +18,7 @@
1918
*/
2019
public abstract class PacketReceiverBase
2120
{
22-
protected delegate void AsyncReceiveMethod();
21+
public delegate void AsyncReceiveMethod();
2322
protected MessageReaderBase _messageReader = null;
2423
protected NetworkInterfaceBase _networkInterface = null;
2524

@@ -41,16 +40,15 @@ public NetworkInterfaceBase networkInterface()
4140

4241
public virtual void startRecv()
4342
{
44-
var v = new AsyncReceiveMethod(this._asyncReceive);
45-
v.BeginInvoke(new AsyncCallback(_onRecv), null);
43+
AsyncReceiveMethod asyncReceiveMethod = new AsyncReceiveMethod(this._asyncReceive);
44+
asyncReceiveMethod.BeginInvoke(new AsyncCallback(_onRecv), asyncReceiveMethod);
4645
}
4746

4847
protected abstract void _asyncReceive();
4948

5049
private void _onRecv(IAsyncResult ar)
5150
{
52-
AsyncResult result = (AsyncResult)ar;
53-
AsyncReceiveMethod caller = (AsyncReceiveMethod)result.AsyncDelegate;
51+
AsyncReceiveMethod caller = (AsyncReceiveMethod)ar.AsyncState; ;
5452
caller.EndInvoke(ar);
5553
}
5654
}

Assets/Plugins/kbengine_unity3d_plugins/PacketReceiverKCP.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Text;
99
using System.Text.RegularExpressions;
1010
using System.Threading;
11-
using System.Runtime.Remoting.Messaging;
1211

1312
using MessageID = System.UInt16;
1413
using MessageLength = System.UInt16;

Assets/Plugins/kbengine_unity3d_plugins/PacketReceiverTCP.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Text;
99
using System.Text.RegularExpressions;
1010
using System.Threading;
11-
using System.Runtime.Remoting.Messaging;
1211

1312
using MessageID = System.UInt16;
1413
using MessageLength = System.UInt16;

Assets/Plugins/kbengine_unity3d_plugins/PacketSenderBase.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Text;
99
using System.Text.RegularExpressions;
1010
using System.Threading;
11-
using System.Runtime.Remoting.Messaging;
1211

1312
using MessageID = System.UInt16;
1413
using MessageLength = System.UInt16;
@@ -25,12 +24,12 @@ public abstract class PacketSenderBase
2524
AsyncCallback _asyncCallback = null;
2625
AsyncSendMethod _asyncSendMethod;
2726

28-
public PacketSenderBase(NetworkInterfaceBase networkInterface)
29-
{
30-
_networkInterface = networkInterface;
27+
public PacketSenderBase(NetworkInterfaceBase networkInterface)
28+
{
29+
_networkInterface = networkInterface;
3130
_asyncSendMethod = new AsyncSendMethod(this._asyncSend);
3231
_asyncCallback = new AsyncCallback(_onSent);
33-
}
32+
}
3433

3534
~PacketSenderBase()
3635
{
@@ -47,15 +46,15 @@ protected void _startSend()
4746
{
4847
// 由于socket用的是非阻塞式,因此在这里不能直接使用socket.send()方法
4948
// 必须放到另一个线程中去做
50-
_asyncSendMethod.BeginInvoke(_asyncCallback, null);
49+
50+
_asyncSendMethod.BeginInvoke(_asyncCallback, _asyncSendMethod);
5151
}
5252

5353
protected abstract void _asyncSend();
5454

5555
protected static void _onSent(IAsyncResult ar)
5656
{
57-
AsyncResult result = (AsyncResult)ar;
58-
AsyncSendMethod caller = (AsyncSendMethod)result.AsyncDelegate;
57+
AsyncSendMethod caller = (AsyncSendMethod)ar.AsyncState;
5958
caller.EndInvoke(ar);
6059
}
6160
}

Assets/Plugins/kbengine_unity3d_plugins/PacketSenderKCP.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Text;
99
using System.Text.RegularExpressions;
1010
using System.Threading;
11-
using System.Runtime.Remoting.Messaging;
1211

1312
using MessageID = System.UInt16;
1413
using MessageLength = System.UInt16;

Assets/Plugins/kbengine_unity3d_plugins/PacketSenderTCP.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Text;
99
using System.Text.RegularExpressions;
1010
using System.Threading;
11-
using System.Runtime.Remoting.Messaging;
1211

1312
using MessageID = System.UInt16;
1413
using MessageLength = System.UInt16;

0 commit comments

Comments
 (0)