From a43245ac0ee194a34456a4c0568675f31e8e3014 Mon Sep 17 00:00:00 2001 From: sin365 <353374337@qq.com> Date: Thu, 29 Jun 2023 19:34:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...b26de889-019d-4af3-b6a2-172ab9c7804b.vsidx | Bin 0 -> 49110 bytes ...d203a6c3-bb80-4fe8-8455-e254fded3140.vsidx | Bin 49600 -> 0 bytes README.md | 26 ++++++++++++++++-- Simple/ServerCore/NetWork/IOCPNetWork.cs | 12 -------- 4 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 .vs/HaoYueNet/FileContentIndex/b26de889-019d-4af3-b6a2-172ab9c7804b.vsidx delete mode 100644 .vs/HaoYueNet/FileContentIndex/d203a6c3-bb80-4fe8-8455-e254fded3140.vsidx diff --git a/.vs/HaoYueNet/FileContentIndex/b26de889-019d-4af3-b6a2-172ab9c7804b.vsidx b/.vs/HaoYueNet/FileContentIndex/b26de889-019d-4af3-b6a2-172ab9c7804b.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..37a64163de57bdd8934a737e2f6781e36754e020 GIT binary patch literal 49110 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

DaVKf?@)61Vw>~xQub{&q<1f) zaYRBn7044ySi6HS7l`;9+|*V%Q}+ zT4B(%_ak|B4Q{5mf}$ZUW*$g@0}mG%JPg?mH#Qz?gY(RSy&7wm+FRp72V?C{$%E~e zgVS34P`AEuJ!pMqP8&i?Q-i^paA6l3bXWvtZ=^zYz=N-yf0?{UdhFF7v{;xO2*)qr zuvqw+{YQUa+`e@VB}+6yJRL`!`-!r=b}3E|j)bT>y9P!yw$Wf2V23^gW}Ob^vKvql zTtClSx^PfHZq`a5KKk$v-@$l)2W=cTyLh6NAm2fw>@-UWVV8bf|FN15gB!P?$U=8n zFewfSgPD$lInA5Vs55>ER6lmv*N?srL6?hIvGQOSy|m)N#An-=Jqo!k_^7~Aq|C{6 zN*?s>IHb1(tq>sj8&GJ@?5qQtH}|#p|1fr;c`L%*iyPaLw;d37Wn1D2Kb~uS{|zFi zMTSdhb%Vf2l;543k_X#luYvECC^=VYHqn8B^qY1EVldIcpuiZ`jp0~c4Zb^2N;c>ztQ^E0 zC{9D#hzjG!JrTDIkrC(a!GVD_E;cfC zK^5aa7yOT9JQTOyVy3;zu-AEJp!OEbMd(EQi%OIIm-E z@ZAFYg!I_7+%dBmdGIkfYv$m~+E~O96Kb%O?3}E2Ec>K}Z=u@R6g%t5+fi$L`$aI7o# zGCR0I@xl8G9G~rEg9PksiaKCi8v`EP@>pMptO)$W7&}qXt{8aGadxLgASp)Uyniw6 z3JI`)%!7UAr~Sdh9+yL;J+sLcQ8k(}#{-C*0vVXC&y}zJJ`;l=BTiI|%Q`TqV*C?3 z{q+He{Ib_ZDA}P_$YX(O^G>Z0gCCbz$|u}7!VS6=7b5IdG@p6xL9>8X^Hv^cOI8j$ z4sT4^T5P{|sSu}_%h7l?H>AhPW+hsC?kmKVKFyIUL9Xgq{BI%1GjZeMnEwJ|!EV+= z{V_}1E6@~1Uh~&$P=gx@W~oRs4mALF08qD zvY&5aDyTKQ>_>MG=v$}#G7CIx@sXQdH6vONqV2E{??bWdEDn)p=B#YCAV(io7~eIr zBZCB+|E@XnWuwqkkRD6PcZXTUOX0z8kfYXUb*v2z=A5#4dO6q_vjsV!EqrHy)r2g0 z{ydms_$^6}aP~83w04AJQCGk$*fsuwQu2(9CtkK9pw&)y+X!sWuTX>lA~yr}z>j&L zfe&1qU(VqE_tEgHH3UM*Zb%`Bw;I?oN0oCjfi6=HPljk0h z!zMMQd2>rUSOfE;r+kl|J7JDetSf%MJ+_oUXF}J<(#KDp)6qb#hm=(+ZLB&s#VESo3WOP4Tp93;G9g~{(UMkxhjc3z? zIof;?cc&lMK@2tuzu(PPScJgG;>M?)9UouA?#H1I;pV+HD3V=%1n}6|49kAb&n&Xn z(pcG`cGCrg7MwEKb4;Yi@nE5CP#5@eL9hf`ab-#Ex5JuP!2e}QhXmMHX@u;$eBx&k z?5KwzgYQ9dKYcyi2DP>wBJ&-%Q9KI8VtE&CK@sCJ+?HXa@eqzfE;k{x2pTnOXyHzs zeHt&3$6yCL-RK}+>U;nKQ@_V@I*s&}K-~@!u#0Fs?Sb1O)HoIA z1j+u!I^Y}Tc3;aTgW}YgV_1N=H2GzCx*S!`O5|5|xTOfh>3=ytWnp%9HtZqMPeC<1 zUP0vB4IDdJa^^O8V~HKdwk68DvmVM44fe2{KG}6^NS?Yd0U99}K(s67wjIUi;)K;? z=UNVys94q?W3Yzo@d*;O>EVgpg*!Am*7fb4mB^u)cE8g#H8NrzgEhl_$oEkvfBtiV z!C11uyg9rsgH{}5?C=kTXdwJK9oxGRWDu7%M3Ea4JFfLh$=dxKi;CNJ=*QJ7`=uSn zsWW^J#CRIOXzXeeB3p)H0FgbJ6CW$qLtO44*|%65Ow=|bt+U@o^tCq_1DlNF&{x61gyL*p`?+Q$HF)>+0QPPKVKjc&mruV&I9tU? yij&Bd>`_p|PP3?pLAT;i#rk73yK<8dypWpyV%gBa>UQv<_TjL@E%!Oc^8Wx^2iL^_ literal 0 HcmV?d00001 diff --git a/.vs/HaoYueNet/FileContentIndex/d203a6c3-bb80-4fe8-8455-e254fded3140.vsidx b/.vs/HaoYueNet/FileContentIndex/d203a6c3-bb80-4fe8-8455-e254fded3140.vsidx deleted file mode 100644 index 4d94a6736c51abd07512f73be9222d4b8fc192bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49600 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 diff --git a/README.md b/README.md index dc446d8..3d1fa42 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,26 @@ # HaoYueNet -.Net 6的,自建基于IOCP的TCP的高性能网络库 -使用Protobuff作为通讯协议 \ No newline at end of file +.Net 7 的,自建基于IOCP的TCP的高性能网络库 +使用Protobuff作为通讯协议 + +包含服务端和客户端双端库,可直接用于各类.Net程序或Unity程序,做TCP通讯底层库。 +不用关心网络底层,直接引用或继承,即可便捷使用。 + +DataCallBack//网络消息事件 +OnClose//连接关闭 + +并包含心跳包等检测、连接管理、Protobuff解析,优化后的高性能收发等等。 + +Simple目录下,有实例客户端和实例服务端, +示例中,使用本网络库,您可以继续示例项目写,也可以参照示例代码。 +示例中实现了: +事件机制, +客户端基本框架(连接管理,数据管理,消息收发,指定用户发送) +服务端基本框架(连接管理,用户管理,消息收发,指定用户发送,广播等) +简单无OAuth登录, +用户列表, +基础的Protobuff设计, +基础聊天功能, +整合Protobuff生成。 + +您甚至可以 \ No newline at end of file diff --git a/Simple/ServerCore/NetWork/IOCPNetWork.cs b/Simple/ServerCore/NetWork/IOCPNetWork.cs index 8eea172..c1c78e7 100644 --- a/Simple/ServerCore/NetWork/IOCPNetWork.cs +++ b/Simple/ServerCore/NetWork/IOCPNetWork.cs @@ -10,18 +10,7 @@ namespace ServerCore.NetWork public IOCPNetWork(int numConnections, int receiveBufferSize) : base(numConnections, receiveBufferSize) { - //m_clientCount = 0; - //m_maxConnectNum = numConnections; - //m_revBufferSize = receiveBufferSize; - //// allocate buffers such that the maximum number of sockets can have one outstanding read and - ////write posted to the socket simultaneously - //m_bufferManager = new BufferManager(receiveBufferSize * numConnections * opsToAlloc, receiveBufferSize); - //m_pool = new SocketEventPool(numConnections); - //m_maxNumberAcceptedClients = new Semaphore(numConnections, numConnections); - - ClientNumberChange += IOCPNetWork_ClientNumberChange; - } private void IOCPNetWork_ClientNumberChange(int num, AsyncUserToken token) @@ -72,6 +61,5 @@ namespace ServerCore.NetWork Console.WriteLine("断开连接"); ServerManager.g_ClientMgr.SetClientOfflineForSocket(sk); } - } }