Skip to content

Commit 5dbc572

Browse files
committed
[增加]1. 增加正在连接的处理
1 parent 2cc6bb8 commit 5dbc572

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

Runtime/Network/Network/NetworkManager.NetworkChannelBase.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ public abstract class NetworkChannelBase : INetworkChannel, IDisposable
5353
protected readonly RpcState PRpcState;
5454
protected int PSentPacketCount;
5555
protected int PReceivedPacketCount;
56+
protected bool PIsConnecting = false;
5657
private bool m_Disposed;
5758
private bool m_PActive;
58-
5959
protected bool PActive
6060
{
6161
get { return m_PActive; }
@@ -107,6 +107,7 @@ public NetworkChannelBase(string name, INetworkChannelHelper networkChannelHelpe
107107
PSentPacketCount = 0;
108108
PReceivedPacketCount = 0;
109109
PActive = false;
110+
PIsConnecting = false;
110111
m_Disposed = false;
111112

112113
NetworkChannelConnected = null;

Runtime/Network/Network/SystemSocket/NetworkManager.SystemTcpNetworkChannel.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ public SystemTcpNetworkChannel(string name, INetworkChannelHelper networkChannel
4343
/// <param name="isSsl">是否是加密</param>
4444
public override void Connect(IPAddress ipAddress, int port, object userData = null, bool isSsl = false)
4545
{
46+
if (PIsConnecting)
47+
{
48+
return;
49+
}
50+
4651
m_ConnectedEndPoint = new IPEndPoint(ipAddress, port);
4752
base.Connect(ipAddress, port, userData, isSsl);
4853
PSystemNetSocket = new SystemNetSocket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
@@ -317,6 +322,7 @@ private void ConnectAsync(object userData)
317322
{
318323
try
319324
{
325+
PIsConnecting = true;
320326
m_ConnectState = new ConnectState(PSystemNetSocket, userData);
321327
((SystemNetSocket)PSocket).BeginConnect(m_ConnectedEndPoint.Address, m_ConnectedEndPoint.Port, ConnectCallback, m_ConnectState);
322328
}
@@ -335,6 +341,7 @@ private void ConnectAsync(object userData)
335341

336342
private void ConnectCallback(IAsyncResult asyncResult)
337343
{
344+
PIsConnecting = false;
338345
var connectState = (ConnectState)asyncResult.AsyncState;
339346
var systemNetSocket = (SystemNetSocket)connectState.Socket;
340347
try

Runtime/Network/Network/WebSocket/NetworkManager.WebSocketNetworkChannel.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ public WebSocketNetworkChannel(string name, INetworkChannelHelper networkChannel
4444
/// <param name="isSsl">是否是加密</param>
4545
public override void Connect(IPAddress ipAddress, int port, object userData = null, bool isSsl = false)
4646
{
47+
if (PIsConnecting)
48+
{
49+
return;
50+
}
51+
4752
base.Connect(ipAddress, port, userData, isSsl);
4853
PSocket = new WebSocketNetSocket(ipAddress, port, isSsl, ReceiveCallback, CloseCallback);
4954
if (PSocket == null)
@@ -172,6 +177,7 @@ private async void ConnectAsync(object userData)
172177
{
173178
try
174179
{
180+
PIsConnecting = true;
175181
var socketClient = (WebSocketNetSocket)PSocket;
176182
await socketClient.ConnectAsync();
177183
ConnectCallback(new ConnectState(PSocket, userData));
@@ -192,6 +198,7 @@ private async void ConnectAsync(object userData)
192198

193199
private void ConnectCallback(ConnectState connectState)
194200
{
201+
PIsConnecting = false;
195202
try
196203
{
197204
var socketUserData = (WebSocketNetSocket)PSocket;

0 commit comments

Comments
 (0)