From 4cb9797f4a8a79ffe978c0cfac26b258e94d150c Mon Sep 17 00:00:00 2001 From: sin365 <353374337@qq.com> Date: Mon, 27 Dec 2021 23:52:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=8F=91=E9=80=81pool=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/HaoYueNet/DesignTimeBuild/.dtbcache.v2 | Bin 123540 -> 123540 bytes .vs/HaoYueNet/v17/.futdcache.v1 | Bin 1300 -> 1812 bytes .../NetWork/SocketManager.cs | 54 +++++++++--------- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/.vs/HaoYueNet/DesignTimeBuild/.dtbcache.v2 b/.vs/HaoYueNet/DesignTimeBuild/.dtbcache.v2 index 612bc9cfdf493c40d5159b3af5347c686c34c313..1a45331a4820a625b3eeadf5d8964f18117966d5 100644 GIT binary patch literal 123540 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 D5X`KS diff --git a/.vs/HaoYueNet/v17/.futdcache.v1 b/.vs/HaoYueNet/v17/.futdcache.v1 index 76c651bcda6499a745759e28e352ed75f80bc159..cf5964a89910e7fcd3d3d29d781c0275d38d6019 100644 GIT binary patch delta 122 zcmbQjHHD9ne private System.Timers.Timer _heartTimer; - + public int m_maxConnectNum; //最大连接数 public int m_revBufferSize; //最大接收字节数 public BufferManager m_bufferManager; @@ -170,7 +170,7 @@ namespace HaoYueNet.ServerNetwork listenSocket.Listen(m_maxConnectNum); // post accepts on the listening socket StartAccept(null); - + _heartTimer = new System.Timers.Timer(); _heartTimer.Interval = TimerInterval; _heartTimer.Elapsed += CheckUpdatetimer_Elapsed; @@ -297,7 +297,7 @@ namespace HaoYueNet.ServerNetwork if (e.SocketError == SocketError.OperationAborted) return; StartAccept(e); } - + void IO_Completed(object sender, SocketAsyncEventArgs e) { // determine which type of operation just completed and call the associated handler @@ -318,19 +318,18 @@ namespace HaoYueNet.ServerNetwork void IO_Completed2(object sender, SocketAsyncEventArgs e) { // determine which type of operation just completed and call the associated handler - - switch (e.LastOperation) - { - case SocketAsyncOperation.Receive: - ProcessReceive(e); - break; - case SocketAsyncOperation.Send: - ProcessSend2(e); - break; - default: - throw new ArgumentException("The last operation completed on the socket was not a receive or send"); - } - + Console.WriteLine("就他妈从来没进过"); + //switch (e.LastOperation) + //{ + // case SocketAsyncOperation.Receive: + // ProcessReceive(e); + // break; + // case SocketAsyncOperation.Send: + // ProcessSend2(e); + // break; + // default: + // throw new ArgumentException("The last operation completed on the socket was not a receive or send"); + //} } // This method is invoked when an asynchronous receive operation completes. @@ -383,9 +382,9 @@ namespace HaoYueNet.ServerNetwork //将数据包交给后台处理,这里你也可以新开个线程来处理.加快速度. if (ReceiveClientData != null) ReceiveClientData(token, rev); - + DataCallBackReady(token, rev); - + //这里API处理完后,并没有返回结果,当然结果是要返回的,却不是在这里, 这里的代码只管接收. //若要返回结果,可在API处理中调用此类对象的SendMessage方法,统一打包发送.不要被微软的示例给迷惑了. } while (token.Buffer.Count > 4); @@ -462,7 +461,7 @@ namespace HaoYueNet.ServerNetwork OnClose(token); lock (m_clients) { m_clients.Remove(token); } - + //补充处理 lock (_DictSocketAsyncUserToken) { _DictSocketAsyncUserToken.Remove(token.Socket); } @@ -546,11 +545,11 @@ namespace HaoYueNet.ServerNetwork sendrun--; Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!"); } - catch(Exception ex) + catch (Exception ex) { Console.WriteLine(ex.ToString()); } - + } public void SendMessage(AsyncUserToken token, byte[] message) @@ -570,6 +569,9 @@ namespace HaoYueNet.ServerNetwork myreadEventArgs.AcceptSocket = token.Socket; myreadEventArgs.SetBuffer(message, 0, message.Length); //将数据放置进去. token.Socket.SendAsync(myreadEventArgs); + + //得了,先回去吧 + m_Sendpool.Push(myreadEventArgs); return; } else @@ -639,7 +641,7 @@ namespace HaoYueNet.ServerNetwork } #region - + /// /// 用于调用者回调的虚函数 /// @@ -710,12 +712,12 @@ namespace HaoYueNet.ServerNetwork OnCloseReady(token); } } - + public AsyncUserToken GetAsyncUserTokenForSocket(Socket sk) { return _DictSocketAsyncUserToken.ContainsKey(sk) ? _DictSocketAsyncUserToken[sk] : null; } - + /// /// 对外暴露的发送消息 /// @@ -731,7 +733,7 @@ namespace HaoYueNet.ServerNetwork byte[] _finaldata = Serizlize(_s2cdata); SendWithIndex(token, _finaldata); } - + /// /// 发送心跳包 /// @@ -757,7 +759,7 @@ namespace HaoYueNet.ServerNetwork OnCloseReady(token); } } - + private void DataCallBackReady(AsyncUserToken sk, byte[] data) {