提交 441cf158 编写于 作者: 若汝棋茗

更新文档

上级 a4a938a6
......@@ -4,13 +4,13 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.2.0">
<title data-rh="true">Page Not Found | TouchSocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://rrqm_home.gitee.io/touchsocket/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Page Not Found | TouchSocket"><link data-rh="true" rel="icon" href="/touchsocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://rrqm_home.gitee.io/touchsocket/404.html"><link data-rh="true" rel="alternate" href="https://rrqm_home.gitee.io/touchsocket/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://rrqm_home.gitee.io/touchsocket/404.html" hreflang="x-default"><link rel="stylesheet" href="/touchsocket/assets/css/styles.4e3b3a7a.css">
<link rel="preload" href="/touchsocket/assets/js/runtime~main.aec64730.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/main.256dbd8f.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/runtime~main.cdaf32a0.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/main.ee860a66.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/touchsocket/"><div class="navbar__logo"><img src="/touchsocket/img/TouchSocketlogo.png" alt="TouchSocket Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/touchsocket/img/TouchSocketlogo.png" alt="TouchSocket Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">TouchSocket</b></a><a class="navbar__item navbar__link" href="/touchsocket/docs">文档</a><a class="navbar__item navbar__link" href="/touchsocket/docs/upgrade">更新日志</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">源码</a><ul class="dropdown__menu"><li><a href="https://gitee.com/rrqm_home/touchsocket" target="_blank" rel="noopener noreferrer" class="dropdown__link">Gitee(主库)<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/RRQM/TouchSocket" target="_blank" rel="noopener noreferrer" class="dropdown__link">GitHub<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://www.nuget.org/profiles/rrqm" target="_blank" rel="noopener noreferrer" class="dropdown__link">Nuget<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><a href="https://gitee.com/dotnetchina" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">社区<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><div class="navbar__search searchBarContainer_NW3z"><input placeholder="Search" aria-label="Search" class="navbar__search-input"><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div><div class="searchHintContainer_Pkmr"><kbd class="searchHint_iIMx">ctrl</kbd><kbd class="searchHint_iIMx">K</kbd></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><main class="container margin-vert--xl"><div class="row"><div class="col col--6 col--offset-3"><h1 class="hero__title">Page Not Found</h1><p>We could not find what you were looking for.</p><p>Please contact the owner of the site that linked you to the original URL and let them know their link is broken.</p></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">文档</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/touchsocket/docs">入门</a></li><li class="footer__item"><a class="footer__link-item" href="/touchsocket/docs">手册</a></li></ul></div><div class="col footer__col"><div class="footer__title">社区</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitee.com/rrqm_home/touchsocket/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">讨论<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gitee.com/rrqm_home/touchsocket/board" target="_blank" rel="noopener noreferrer" class="footer__link-item">看板<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">更多</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitee.com/rrqm_home/touchsocket" target="_blank" rel="noopener noreferrer" class="footer__link-item">仓库<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2020-2023 若汝棋茗.</div></div></div></footer></div>
<script src="/touchsocket/assets/js/runtime~main.aec64730.js"></script>
<script src="/touchsocket/assets/js/main.256dbd8f.js"></script>
<script src="/touchsocket/assets/js/runtime~main.cdaf32a0.js"></script>
<script src="/touchsocket/assets/js/main.ee860a66.js"></script>
</body>
</html>
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[232],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=o.createContext({}),s=function(e){var t=o.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),y=s(n),k=r,d=y["".concat(i,".").concat(k)]||y[k]||u[k]||l;return n?o.createElement(d,a(a({ref:t},p),{},{components:n})):o.createElement(d,a({ref:t},p))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,a=new Array(l);a[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:r,a[1]=c;for(var s=2;s<l;s++)a[s]=n[s];return o.createElement.apply(null,a)}return o.createElement.apply(null,n)}y.displayName="MDXCreateElement"},2342:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const l={id:"bytepool",sidebar_position:1,title:"\u5185\u5b58\u6c60",sidebar_label:"4.1 \u5185\u5b58\u6c60"},a=void 0,c={unversionedId:"04\u3001Core/bytepool",id:"04\u3001Core/bytepool",title:"\u5185\u5b58\u6c60",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.1 \u5185\u5b58\u6c60.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/bytepool",permalink:"/touchsocket/docs/04\u3001Core/bytepool",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.1 \u5185\u5b58\u6c60.mdx",tags:[],version:"current",sidebarPosition:1,frontMatter:{id:"bytepool",sidebar_position:1,title:"\u5185\u5b58\u6c60",sidebar_label:"4.1 \u5185\u5b58\u6c60"},sidebar:"tutorialSidebar",previous:{title:"a.FPS\u5b9e\u65f6\u6e38\u620f",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.4 \u4f7f\u7528\u8005\u9879\u76ee/fpsgame"},next:{title:"4.2 \u63a7\u5236\u53f0\u884c\u4e3a",permalink:"/touchsocket/docs/04\u3001Core/consoleaction"}},i={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u529f\u80fd",id:"\u4e8c\u529f\u80fd",level:2},{value:"\u4e09\u3001\u521b\u5efa",id:"\u4e09\u521b\u5efa",level:2},{value:"\u56db\u3001\u4f7f\u7528",id:"\u56db\u4f7f\u7528",level:2},{value:"4.1 \u5199\u5165\u3001\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61",id:"41-\u5199\u5165\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61",level:4},{value:"4.2 \u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5c\uff08Hold\uff09",id:"42-\u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5chold",level:4}],p={toc:s};function u(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"\u5185\u5b58\u6c60\u662fTouchSocketCore\u7684\u6700\u91cd\u8981\u7684\u7ec4\u6210\u90e8\u5206\uff0c\u5728TouchSocket\u4ea7\u54c1\u4e2d\uff0cBytePool\u8d2f\u7a7f\u59cb\u7ec8\u3002\u6240\u4ee5\u719f\u6089\u4f7f\u7528BytePool\uff0c\u4e5f\u662f\u975e\u5e38\u91cd\u8981\u7684\u3002"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Nuget Package\uff1a"),(0,r.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/TouchSocket/"},"TouchSocket")),(0,r.kt)("h2",{id:"\u4e8c\u529f\u80fd"},"\u4e8c\u3001\u529f\u80fd"),(0,r.kt)("p",null,"\u5185\u5b58\u6c60\uff08BytePool\uff09\u7684\u6700\u5c0f\u5b9e\u73b0\u5355\u4f53\u662f\u5185\u5b58\u5757\uff08ByteBlock\uff09\uff0c\u5b83\u662f\u7ee7\u627f\u81eaStream\u7684\u7c7b\uff0c\u62e5\u6709\u548cMemoryStream\u4e00\u6837\u7684\u529f\u80fd\u548cRRQM\u7684\u589e\u5f3a\u529f\u80fd\u3002\u800c\u4e14\u62e5\u6709\u91ca\u653e\u56de\u6536\u80fd\u529b\uff0c\u6240\u4ee5\u5982\u679c\u6709MemoryStream\u7684\u4f7f\u7528\u9700\u6c42\u7684\u8bdd\uff0c\u5c31\u53ef\u4ee5\u5b8c\u5168\u8ba9ByteBlock\u66ff\u4ee3\u3002"),(0,r.kt)("h2",{id:"\u4e09\u521b\u5efa"},"\u4e09\u3001\u521b\u5efa"),(0,r.kt)("p",null,"BytePool\u662f\u9759\u6001\u7c7b\uff0c\u65e0\u9700\u521b\u5efa\uff0c\u76f4\u63a5\u4f7f\u7528\u5373\u53ef\u3002ByteBlock\u53ef\u901a\u8fc7BytePool\u521b\u5efa\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5new\u5bf9\u8c61\uff0c\u8fd9\u4e24\u8005\u5b9e\u9645\u64cd\u4f5c\u4e00\u81f4\u3002\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("em",{parentName:"strong"},"\u6ce8\u610f\uff1a\u521b\u5efa\u7684ByteBlock\u5fc5\u987b\u91ca\u653e\uff08Dispose\uff09\uff0c\u867d\u7136\u4e0d\u4f1a\u5185\u5b58\u6cc4\u9732\uff0c\u4f46\u662f\u4f1a\u5f71\u54cd\u6027\u80fd\u3002"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"ByteBlock byteBlock1 = new ByteBlock(byteSize:1024*1024,equalSize:false);\nbyteBlock1.Dispose();\nByteBlock byteBlock2 = BytePool.GetByteBlock(byteSize:1024*1024,equalSize:false);\nbyteBlock2.Dispose();\nusing (ByteBlock byteBlock3=new ByteBlock())\n{\n}\n")),(0,r.kt)("h2",{id:"\u56db\u4f7f\u7528"},"\u56db\u3001\u4f7f\u7528"),(0,r.kt)("p",null,"\u57fa\u7840\u4f7f\u7528\u548cMemoryStream\u4e00\u81f4\uff0c\u4e0b\u9762\u4ec5\u4ecb\u7ecd\u7279\u5b9a\u4f7f\u7528\u3002"),(0,r.kt)("h4",{id:"41-\u5199\u5165\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61"},"4.1 \u5199\u5165\u3001\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'using (ByteBlock byteBlock = new ByteBlock())\n{\n byteBlock.Write(byte.MaxValue);\n byteBlock.Write(int.MaxValue);\n byteBlock.Write(long.MaxValue);\n byteBlock.Write("RRQM");\n byteBlock.WriteObject(new Person(), SerializationType.Json);\n byteBlock.WriteBytesPackage(new byte[1024]);\n byteBlock.Pos = 0;//\u8bfb\u53d6\u65f6\uff0c\u5148\u5c06\u6e38\u6807\u79fb\u52a8\u5230\u521d\u59cb\u5199\u5165\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u6309\u5199\u5165\u987a\u5e8f\uff0c\u4f9d\u6b21\u8bfb\u53d6\n byte ByteValue = byteBlock.ReadByte();\n int IntValue = byteBlock.ReadInt32();\n long LongValue = byteBlock.ReadInt64();\n string StringValue = byteBlock.ReadString();\n Person ObjectValue = byteBlock.ReadObject<Person>(SerializationType.Json);\n byte[] BytesValue = byteBlock.ReadBytesPackage();\n}\n')),(0,r.kt)("h4",{id:"42-\u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5chold"},"4.2 \u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5c\uff08Hold\uff09"),(0,r.kt)("p",null,"\u5728\u591a\u7ebf\u7a0b\u5f02\u6b65\u65f6\uff0c\u8bbe\u8ba1\u67b6\u6784\u5e94\u5f53\u9075\u5b88\u8c01\uff08Thread\uff09\u521b\u5efa\u7684ByteBlock\uff0c\u7531\u8c01\u91ca\u653e\uff0c\u8fd9\u6837\u5c31\u80fd\u5f88\u597d\u7684\u907f\u514d\u672a\u91ca\u653e\u7684\u60c5\u51b5\u53d1\u751f\u3002\u5b9e\u9645\u4e0aRRQMSocket\u4e2d\uff0c\u5c31\u662f\u79c9\u627f\u8fd9\u6837\u7684\u8bbe\u8ba1\uff0c\u4efb\u4f55\u975e\u7528\u6237\u521b\u5efa\u7684ByteBlock\uff0c\u90fd\u4f1a\u7531\u521b\u5efa\u7684\u7ebf\u7a0b\u6700\u540e\u91ca\u653e\u3002\u4f46\u662f\u5728\u4f7f\u7528\u4e2d\uff0c\u7ecf\u5e38\u51fa\u73b0\u5f02\u6b65\u591a\u7ebf\u7a0b\u7684\u64cd\u4f5c\u3002\n\u4ee5RRQMSocket\u7684TcpClient\u4e3a\u4f8b\u3002\u5982\u679c\u76f4\u63a5\u5728\u6536\u5230\u6570\u636e\u65f6\uff0c\u4f7f\u7528Task\u5f02\u6b65\uff0c\u5219\u5fc5\u5b9a\u4f1a\u53d1\u751f\u5173\u4e8eByteBlock\u7684\u5404\u79cd\u5404\u6837\u7684\u5f02\u5e38\u3002\n",(0,r.kt)("strong",{parentName:"p"},"\u539f\u56e0\u975e\u5e38\u7b80\u5355\uff0cbyteBlock\u5bf9\u8c61\u5728\u5230\u8fbeHandleReceivedData\u65f6\uff0c\u89e6\u53d1Task\u5f02\u6b65\uff0c\u6b64\u65f6\u89e6\u53d1\u7ebf\u7a0b\u4f1a\u7acb\u5373\u8fd4\u56de\uff0c\u5e76\u91ca\u653ebyteBlock\uff0c\u800cTask\u5f02\u6b65\u7ebf\u7a0b\u4f1a\u6ede\u540e\uff0c\u7136\u540e\u8bd5\u56fe\u4ece\u5df2\u91ca\u653e\u7684byteBlock\u4e2d\u83b7\u53d6\u6570\u636e\uff0c\u6240\u4ee5\uff0c\u5fc5\u5b9a\u53d1\u751f\u5f02\u5e38\u3002")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTClient : TcpClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n Task.Run(()=> \n {\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n Console.WriteLine($"\u5df2\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n });\n }\n}\n')),(0,r.kt)("p",null,"\u89e3\u51b3\u65b9\u6cd5\u4e5f\u975e\u5e38\u7b80\u5355\uff0c\u53ea\u9700\u8981\u5728\u5f02\u6b65\u524d\u9501\u5b9a\uff0c\u7136\u540e\u4f7f\u7528\u5b8c\u6210\u540e\u53d6\u6d88\u9501\u5b9a\uff0c\u4e14\u4e0d\u7528\u518d\u8c03\u7528Dispose\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTClient : TcpClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n byteBlock.SetHolding(true);//\u5f02\u6b65\u524d\u9501\u5b9a\n Task.Run(()=> \n {\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n byteBlock.SetHolding(false);//\u4f7f\u7528\u5b8c\u6210\u540e\u53d6\u6d88\u9501\u5b9a\uff0c\u4e14\u4e0d\u7528\u518d\u8c03\u7528Dispose\n Console.WriteLine($"\u5df2\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n });\n }\n}\n')))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[6232],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=o.createContext({}),s=function(e){var t=o.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},y={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=s(n),k=r,d=u["".concat(i,".").concat(k)]||u[k]||y[k]||l;return n?o.createElement(d,a(a({ref:t},p),{},{components:n})):o.createElement(d,a({ref:t},p))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,a=new Array(l);a[0]=u;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:r,a[1]=c;for(var s=2;s<l;s++)a[s]=n[s];return o.createElement.apply(null,a)}return o.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2342:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>y,frontMatter:()=>l,metadata:()=>c,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const l={id:"bytepool",sidebar_position:1,title:"\u5185\u5b58\u6c60",sidebar_label:"4.1 \u5185\u5b58\u6c60"},a=void 0,c={unversionedId:"04\u3001Core/bytepool",id:"04\u3001Core/bytepool",title:"\u5185\u5b58\u6c60",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.1 \u5185\u5b58\u6c60.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/bytepool",permalink:"/touchsocket/docs/04\u3001Core/bytepool",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.1 \u5185\u5b58\u6c60.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:1,frontMatter:{id:"bytepool",sidebar_position:1,title:"\u5185\u5b58\u6c60",sidebar_label:"4.1 \u5185\u5b58\u6c60"},sidebar:"tutorialSidebar",previous:{title:"a.FPS\u5b9e\u65f6\u6e38\u620f",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.4 \u4f7f\u7528\u8005\u9879\u76ee/fpsgame"},next:{title:"4.2 \u63a7\u5236\u53f0\u884c\u4e3a",permalink:"/touchsocket/docs/04\u3001Core/consoleaction"}},i={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u529f\u80fd",id:"\u4e8c\u529f\u80fd",level:2},{value:"\u4e09\u3001\u521b\u5efa",id:"\u4e09\u521b\u5efa",level:2},{value:"\u56db\u3001\u4f7f\u7528",id:"\u56db\u4f7f\u7528",level:2},{value:"4.1 \u5199\u5165\u3001\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61",id:"41-\u5199\u5165\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61",level:4},{value:"4.2 \u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5c\uff08Hold\uff09",id:"42-\u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5chold",level:4}],p={toc:s};function y(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"\u5185\u5b58\u6c60\u662fTouchSocketCore\u7684\u6700\u91cd\u8981\u7684\u7ec4\u6210\u90e8\u5206\uff0c\u5728TouchSocket\u4ea7\u54c1\u4e2d\uff0cBytePool\u8d2f\u7a7f\u59cb\u7ec8\u3002\u6240\u4ee5\u719f\u6089\u4f7f\u7528BytePool\uff0c\u4e5f\u662f\u975e\u5e38\u91cd\u8981\u7684\u3002"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Nuget Package\uff1a"),(0,r.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/TouchSocket/"},"TouchSocket")),(0,r.kt)("h2",{id:"\u4e8c\u529f\u80fd"},"\u4e8c\u3001\u529f\u80fd"),(0,r.kt)("p",null,"\u5185\u5b58\u6c60\uff08BytePool\uff09\u7684\u6700\u5c0f\u5b9e\u73b0\u5355\u4f53\u662f\u5185\u5b58\u5757\uff08ByteBlock\uff09\uff0c\u5b83\u662f\u7ee7\u627f\u81eaStream\u7684\u7c7b\uff0c\u62e5\u6709\u548cMemoryStream\u4e00\u6837\u7684\u529f\u80fd\u548cRRQM\u7684\u589e\u5f3a\u529f\u80fd\u3002\u800c\u4e14\u62e5\u6709\u91ca\u653e\u56de\u6536\u80fd\u529b\uff0c\u6240\u4ee5\u5982\u679c\u6709MemoryStream\u7684\u4f7f\u7528\u9700\u6c42\u7684\u8bdd\uff0c\u5c31\u53ef\u4ee5\u5b8c\u5168\u8ba9ByteBlock\u66ff\u4ee3\u3002"),(0,r.kt)("h2",{id:"\u4e09\u521b\u5efa"},"\u4e09\u3001\u521b\u5efa"),(0,r.kt)("p",null,"BytePool\u662f\u9759\u6001\u7c7b\uff0c\u65e0\u9700\u521b\u5efa\uff0c\u76f4\u63a5\u4f7f\u7528\u5373\u53ef\u3002ByteBlock\u53ef\u901a\u8fc7BytePool\u521b\u5efa\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5new\u5bf9\u8c61\uff0c\u8fd9\u4e24\u8005\u5b9e\u9645\u64cd\u4f5c\u4e00\u81f4\u3002\n",(0,r.kt)("strong",{parentName:"p"},(0,r.kt)("em",{parentName:"strong"},"\u6ce8\u610f\uff1a\u521b\u5efa\u7684ByteBlock\u5fc5\u987b\u91ca\u653e\uff08Dispose\uff09\uff0c\u867d\u7136\u4e0d\u4f1a\u5185\u5b58\u6cc4\u9732\uff0c\u4f46\u662f\u4f1a\u5f71\u54cd\u6027\u80fd\u3002"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"ByteBlock byteBlock1 = new ByteBlock(byteSize:1024*1024,equalSize:false);\nbyteBlock1.Dispose();\nByteBlock byteBlock2 = BytePool.GetByteBlock(byteSize:1024*1024,equalSize:false);\nbyteBlock2.Dispose();\nusing (ByteBlock byteBlock3=new ByteBlock())\n{\n}\n")),(0,r.kt)("h2",{id:"\u56db\u4f7f\u7528"},"\u56db\u3001\u4f7f\u7528"),(0,r.kt)("p",null,"\u57fa\u7840\u4f7f\u7528\u548cMemoryStream\u4e00\u81f4\uff0c\u4e0b\u9762\u4ec5\u4ecb\u7ecd\u7279\u5b9a\u4f7f\u7528\u3002"),(0,r.kt)("h4",{id:"41-\u5199\u5165\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61"},"4.1 \u5199\u5165\u3001\u8bfb\u53d6\u6570\u636e\u5bf9\u8c61"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'using (ByteBlock byteBlock = new ByteBlock())\n{\n byteBlock.Write(byte.MaxValue);\n byteBlock.Write(int.MaxValue);\n byteBlock.Write(long.MaxValue);\n byteBlock.Write("RRQM");\n byteBlock.WriteObject(new Person(), SerializationType.Json);\n byteBlock.WriteBytesPackage(new byte[1024]);\n byteBlock.Pos = 0;//\u8bfb\u53d6\u65f6\uff0c\u5148\u5c06\u6e38\u6807\u79fb\u52a8\u5230\u521d\u59cb\u5199\u5165\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u6309\u5199\u5165\u987a\u5e8f\uff0c\u4f9d\u6b21\u8bfb\u53d6\n byte ByteValue = byteBlock.ReadByte();\n int IntValue = byteBlock.ReadInt32();\n long LongValue = byteBlock.ReadInt64();\n string StringValue = byteBlock.ReadString();\n Person ObjectValue = byteBlock.ReadObject<Person>(SerializationType.Json);\n byte[] BytesValue = byteBlock.ReadBytesPackage();\n}\n')),(0,r.kt)("h4",{id:"42-\u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5chold"},"4.2 \u591a\u7ebf\u7a0b\u540c\u6b65\u534f\u4f5c\uff08Hold\uff09"),(0,r.kt)("p",null,"\u5728\u591a\u7ebf\u7a0b\u5f02\u6b65\u65f6\uff0c\u8bbe\u8ba1\u67b6\u6784\u5e94\u5f53\u9075\u5b88\u8c01\uff08Thread\uff09\u521b\u5efa\u7684ByteBlock\uff0c\u7531\u8c01\u91ca\u653e\uff0c\u8fd9\u6837\u5c31\u80fd\u5f88\u597d\u7684\u907f\u514d\u672a\u91ca\u653e\u7684\u60c5\u51b5\u53d1\u751f\u3002\u5b9e\u9645\u4e0aRRQMSocket\u4e2d\uff0c\u5c31\u662f\u79c9\u627f\u8fd9\u6837\u7684\u8bbe\u8ba1\uff0c\u4efb\u4f55\u975e\u7528\u6237\u521b\u5efa\u7684ByteBlock\uff0c\u90fd\u4f1a\u7531\u521b\u5efa\u7684\u7ebf\u7a0b\u6700\u540e\u91ca\u653e\u3002\u4f46\u662f\u5728\u4f7f\u7528\u4e2d\uff0c\u7ecf\u5e38\u51fa\u73b0\u5f02\u6b65\u591a\u7ebf\u7a0b\u7684\u64cd\u4f5c\u3002\n\u4ee5RRQMSocket\u7684TcpClient\u4e3a\u4f8b\u3002\u5982\u679c\u76f4\u63a5\u5728\u6536\u5230\u6570\u636e\u65f6\uff0c\u4f7f\u7528Task\u5f02\u6b65\uff0c\u5219\u5fc5\u5b9a\u4f1a\u53d1\u751f\u5173\u4e8eByteBlock\u7684\u5404\u79cd\u5404\u6837\u7684\u5f02\u5e38\u3002\n",(0,r.kt)("strong",{parentName:"p"},"\u539f\u56e0\u975e\u5e38\u7b80\u5355\uff0cbyteBlock\u5bf9\u8c61\u5728\u5230\u8fbeHandleReceivedData\u65f6\uff0c\u89e6\u53d1Task\u5f02\u6b65\uff0c\u6b64\u65f6\u89e6\u53d1\u7ebf\u7a0b\u4f1a\u7acb\u5373\u8fd4\u56de\uff0c\u5e76\u91ca\u653ebyteBlock\uff0c\u800cTask\u5f02\u6b65\u7ebf\u7a0b\u4f1a\u6ede\u540e\uff0c\u7136\u540e\u8bd5\u56fe\u4ece\u5df2\u91ca\u653e\u7684byteBlock\u4e2d\u83b7\u53d6\u6570\u636e\uff0c\u6240\u4ee5\uff0c\u5fc5\u5b9a\u53d1\u751f\u5f02\u5e38\u3002")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTClient : TcpClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n Task.Run(()=> \n {\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n Console.WriteLine($"\u5df2\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n });\n }\n}\n')),(0,r.kt)("p",null,"\u89e3\u51b3\u65b9\u6cd5\u4e5f\u975e\u5e38\u7b80\u5355\uff0c\u53ea\u9700\u8981\u5728\u5f02\u6b65\u524d\u9501\u5b9a\uff0c\u7136\u540e\u4f7f\u7528\u5b8c\u6210\u540e\u53d6\u6d88\u9501\u5b9a\uff0c\u4e14\u4e0d\u7528\u518d\u8c03\u7528Dispose\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTClient : TcpClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n byteBlock.SetHolding(true);//\u5f02\u6b65\u524d\u9501\u5b9a\n Task.Run(()=> \n {\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n byteBlock.SetHolding(false);//\u4f7f\u7528\u5b8c\u6210\u540e\u53d6\u6d88\u9501\u5b9a\uff0c\u4e14\u4e0d\u7528\u518d\u8c03\u7528Dispose\n Console.WriteLine($"\u5df2\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n });\n }\n}\n')))}y.isMDXComponent=!0}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4221],{3905:(e,r,t)=>{t.d(r,{Zo:()=>c,kt:()=>d});var o=t(7294);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function l(e,r){if(null==e)return{};var t,o,n=function(e,r){if(null==e)return{};var t,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)t=a[o],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)t=a[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var g=o.createContext({}),p=function(e){var r=o.useContext(g),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},c=function(e){var r=p(e.components);return o.createElement(g.Provider,{value:r},e.children)},s={inlineCode:"code",wrapper:function(e){var r=e.children;return o.createElement(o.Fragment,{},r)}},u=o.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,g=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(t),d=n,m=u["".concat(g,".").concat(d)]||u[d]||s[d]||a;return t?o.createElement(m,i(i({ref:r},c),{},{components:t})):o.createElement(m,i({ref:r},c))}));function d(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,i=new Array(a);i[0]=u;var l={};for(var g in r)hasOwnProperty.call(r,g)&&(l[g]=r[g]);l.originalType=e,l.mdxType="string"==typeof e?e:n,i[1]=l;for(var p=2;p<a;p++)i[p]=t[p];return o.createElement.apply(null,i)}return o.createElement.apply(null,t)}u.displayName="MDXCreateElement"},5466:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>g,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var o=t(7462),n=(t(7294),t(3905));const a={id:"ilog",sidebar_position:5,title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",sidebar_label:"4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668"},i=void 0,l={unversionedId:"04\u3001Core/ilog",id:"04\u3001Core/ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",description:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",source:"@site/docs/04\u3001Core/4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/ilog",permalink:"/touchsocket/docs/04\u3001Core/ilog",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:5,frontMatter:{id:"ilog",sidebar_position:5,title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",sidebar_label:"4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668"},sidebar:"tutorialSidebar",previous:{title:"4.4 \u6570\u636e\u52a0\u5bc6",permalink:"/touchsocket/docs/04\u3001Core/datasecurity"},next:{title:"4.6 \u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/04\u3001Core/appmessenger"}},g={},p=[{value:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog",level:2},{value:"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09",id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger",level:2},{value:"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09",id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger",level:2},{value:"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09",id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup",level:2},{value:"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55",id:"\u4e94\u65e5\u5fd7\u6269\u5c55",level:2}],c={toc:p};function s(e){let{components:r,...t}=e;return(0,n.kt)("wrapper",(0,o.Z)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog"},"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09"),(0,n.kt)("p",null,"\u7ee7\u627fILog\u63a5\u53e3\uff0c\u7136\u540e\u5b9e\u73b0\u4ee5\u4e0b\u65b9\u6cd5\u3002\u5373\u53ef\u5b9e\u73b0\u5185\u90e8\u7684\u65e5\u5fd7\u8bb0\u5f55\u3002\n\u5f53\u7528\u6237\u81ea\u884c\u8f93\u51fa\u65e5\u5fd7\u65f6\uff0c\u53ef\u81ea\u884c\u5b9e\u73b0\u8fc7\u7a0b\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"public interface ILog\n{\n LogType LogType { get; set; }\n \n void Log(LogType logType, object source, string message, Exception exception);\n}\n\n")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"LogType\u8868\u793a\u5f53\u524d\u65e5\u5fd7\u7684\u53ef\u8f93\u51fa\u7c7b\u578b\uff0c\u5e76\u975e\u8f93\u51fa\u7ea7\u522b\uff0c\u6240\u4ee5\u5f53\u9700\u8981\u8f93\u51fa\u591a\u79cd\u7c7b\u578b\u65f6\uff0c\u8bf7\u8fdb\u884c\u4f4d\u57df\u64cd\u4f5c\u3002")),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"LogType= LogType.Warning| LogType.Information;\n")),(0,n.kt)("h2",{id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger"},"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u4f1a\u6309\u7167\u4ee5\u4e0b\u683c\u5f0f\u8f93\u51fa\u3002\n",(0,n.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1645362519650-0a526ef1-d410-4158-8dbf-54842d4f3b2d.png#clientId=u27122025-3a3c-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown%20error&from=paste&height=54&id=uef064240&margin=%5Bobject%20Object%5D&name=image.png&originHeight=107&originWidth=809&originalType=binary&ratio=1&rotation=0&showTitle=false&size=17952&status=error&style=none&taskId=u317166cd-8368-45ba-9cea-59171b10e95&title=&width=404.5",alt:"image.png"})),(0,n.kt)("h2",{id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger"},"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u5148\u4f1a\u5728\u6307\u5b9a\u76ee\u5f55\u4e0b\u521b\u5efa\u201clogs\u201d\u76ee\u5f55\uff0c\u7136\u540e\u6309\u65e5\u671f\u751f\u6210\u201c.log\u201d\u6587\u4ef6\u3002\n",(0,n.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1645362772786-6538579f-b6f3-427b-b750-28ac38abd09b.png#clientId=u27122025-3a3c-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown%20error&from=paste&height=163&id=u2ddd4417&margin=%5Bobject%20Object%5D&name=image.png&originHeight=325&originWidth=1391&originalType=binary&ratio=1&rotation=0&showTitle=false&size=35937&status=error&style=shadow&taskId=u4ac63909-dab3-4911-9084-a7f79001deb&title=&width=695.5",alt:"image.png"})),(0,n.kt)("h2",{id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup"},"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09"),(0,n.kt)("p",null,"\u4f7f\u7528\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\u65f6\uff0c\u53ef\u4ee5\u540c\u65f6\u8bb0\u5f55\u591a\u4e2a\u65e5\u5fd7\uff0c\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\u5c31\u540c\u65f6\u5728\u63a7\u5236\u53f0\u548c\u6587\u4ef6\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\n")),(0,n.kt)("h2",{id:"\u4e94\u65e5\u5fd7\u6269\u5c55"},"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55"),(0,n.kt)("p",null,"\u5f15\u5165\u547d\u540d\u7a7a\u95f4\u3002\u53ef\u5feb\u6377\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},'LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\nlogger.Info("Message");\nlogger.Warning("Warning");\nlogger.Error("Error");\n')))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[221],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>d});var o=t(7294);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){n(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function l(e,r){if(null==e)return{};var t,o,n=function(e,r){if(null==e)return{};var t,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)t=a[o],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)t=a[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var g=o.createContext({}),c=function(e){var r=o.useContext(g),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},p=function(e){var r=c(e.components);return o.createElement(g.Provider,{value:r},e.children)},s={inlineCode:"code",wrapper:function(e){var r=e.children;return o.createElement(o.Fragment,{},r)}},u=o.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,g=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(t),d=n,m=u["".concat(g,".").concat(d)]||u[d]||s[d]||a;return t?o.createElement(m,i(i({ref:r},p),{},{components:t})):o.createElement(m,i({ref:r},p))}));function d(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,i=new Array(a);i[0]=u;var l={};for(var g in r)hasOwnProperty.call(r,g)&&(l[g]=r[g]);l.originalType=e,l.mdxType="string"==typeof e?e:n,i[1]=l;for(var c=2;c<a;c++)i[c]=t[c];return o.createElement.apply(null,i)}return o.createElement.apply(null,t)}u.displayName="MDXCreateElement"},5466:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>g,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var o=t(7462),n=(t(7294),t(3905));const a={id:"ilog",sidebar_position:5,title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",sidebar_label:"4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668"},i=void 0,l={unversionedId:"04\u3001Core/ilog",id:"04\u3001Core/ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",description:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",source:"@site/docs/04\u3001Core/4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/ilog",permalink:"/touchsocket/docs/04\u3001Core/ilog",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668.mdx",tags:[],version:"current",sidebarPosition:5,frontMatter:{id:"ilog",sidebar_position:5,title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",sidebar_label:"4.5 \u65e5\u5fd7\u8bb0\u5f55\u5668"},sidebar:"tutorialSidebar",previous:{title:"4.4 \u6570\u636e\u52a0\u5bc6",permalink:"/touchsocket/docs/04\u3001Core/datasecurity"},next:{title:"4.6 \u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/04\u3001Core/appmessenger"}},g={},c=[{value:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog",level:2},{value:"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09",id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger",level:2},{value:"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09",id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger",level:2},{value:"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09",id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup",level:2},{value:"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55",id:"\u4e94\u65e5\u5fd7\u6269\u5c55",level:2}],p={toc:c};function s(e){let{components:r,...t}=e;return(0,n.kt)("wrapper",(0,o.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog"},"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09"),(0,n.kt)("p",null,"\u7ee7\u627fILog\u63a5\u53e3\uff0c\u7136\u540e\u5b9e\u73b0\u4ee5\u4e0b\u65b9\u6cd5\u3002\u5373\u53ef\u5b9e\u73b0\u5185\u90e8\u7684\u65e5\u5fd7\u8bb0\u5f55\u3002\n\u5f53\u7528\u6237\u81ea\u884c\u8f93\u51fa\u65e5\u5fd7\u65f6\uff0c\u53ef\u81ea\u884c\u5b9e\u73b0\u8fc7\u7a0b\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"public interface ILog\n{\n LogType LogType { get; set; }\n \n void Log(LogType logType, object source, string message, Exception exception);\n}\n\n")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"LogType\u8868\u793a\u5f53\u524d\u65e5\u5fd7\u7684\u53ef\u8f93\u51fa\u7c7b\u578b\uff0c\u5e76\u975e\u8f93\u51fa\u7ea7\u522b\uff0c\u6240\u4ee5\u5f53\u9700\u8981\u8f93\u51fa\u591a\u79cd\u7c7b\u578b\u65f6\uff0c\u8bf7\u8fdb\u884c\u4f4d\u57df\u64cd\u4f5c\u3002")),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"LogType= LogType.Warning| LogType.Information;\n")),(0,n.kt)("h2",{id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger"},"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u4f1a\u6309\u7167\u4ee5\u4e0b\u683c\u5f0f\u8f93\u51fa\u3002\n",(0,n.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1645362519650-0a526ef1-d410-4158-8dbf-54842d4f3b2d.png#clientId=u27122025-3a3c-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown%20error&from=paste&height=54&id=uef064240&margin=%5Bobject%20Object%5D&name=image.png&originHeight=107&originWidth=809&originalType=binary&ratio=1&rotation=0&showTitle=false&size=17952&status=error&style=none&taskId=u317166cd-8368-45ba-9cea-59171b10e95&title=&width=404.5",alt:"image.png"})),(0,n.kt)("h2",{id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger"},"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u5148\u4f1a\u5728\u6307\u5b9a\u76ee\u5f55\u4e0b\u521b\u5efa\u201clogs\u201d\u76ee\u5f55\uff0c\u7136\u540e\u6309\u65e5\u671f\u751f\u6210\u201c.log\u201d\u6587\u4ef6\u3002\n",(0,n.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1645362772786-6538579f-b6f3-427b-b750-28ac38abd09b.png#clientId=u27122025-3a3c-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown%20error&from=paste&height=163&id=u2ddd4417&margin=%5Bobject%20Object%5D&name=image.png&originHeight=325&originWidth=1391&originalType=binary&ratio=1&rotation=0&showTitle=false&size=35937&status=error&style=shadow&taskId=u4ac63909-dab3-4911-9084-a7f79001deb&title=&width=695.5",alt:"image.png"})),(0,n.kt)("h2",{id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup"},"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09"),(0,n.kt)("p",null,"\u4f7f\u7528\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\u65f6\uff0c\u53ef\u4ee5\u540c\u65f6\u8bb0\u5f55\u591a\u4e2a\u65e5\u5fd7\uff0c\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\u5c31\u540c\u65f6\u5728\u63a7\u5236\u53f0\u548c\u6587\u4ef6\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\n")),(0,n.kt)("h2",{id:"\u4e94\u65e5\u5fd7\u6269\u5c55"},"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55"),(0,n.kt)("p",null,"\u5f15\u5165\u547d\u540d\u7a7a\u95f4\u3002\u53ef\u5feb\u6377\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},'LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\nlogger.Info("Message");\nlogger.Warning("Warning");\nlogger.Error("Error");\n')))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[918],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>p});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,l=function(e,t){if(null==e)return{};var n,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=i(n),p=l,v=u["".concat(s,".").concat(p)]||u[p]||m[p]||r;return n?a.createElement(v,o(o({ref:t},d),{},{components:n})):a.createElement(v,o({ref:t},d))}));function p(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,o=new Array(r);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:l,o[1]=c;for(var i=2;i<r;i++)o[i]=n[i];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2047:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ue});var a=n(7294),l=n(1944),r=n(902);const o=a.createContext(null);function c(e){let{children:t,content:n}=e;const l=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(o.Provider,{value:l},t)}function s(){const e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(6010),m=n(7524),u=n(7462),p=n(5999),v=n(9960);function f(e){const{permalink:t,title:n,subLabel:l,isNext:r}=e;return a.createElement(v.Z,{className:(0,d.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&a.createElement("div",{className:"pagination-nav__sublabel"},l),a.createElement("div",{className:"pagination-nav__label"},n))}function b(e){const{previous:t,next:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,p.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&a.createElement(f,(0,u.Z)({},t,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&a.createElement(f,(0,u.Z)({},n,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function h(){const{metadata:e}=s();return a.createElement(b,{previous:e.previous,next:e.next})}var g=n(2263),E=n(143),L=n(5281),N=n(373),k=n(4477);const y={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function _(e){const t=y[e.versionMetadata.banner];return a.createElement(t,e)}function C(e){let{versionLabel:t,to:n,onClick:l}=e;return a.createElement(p.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(v.Z,{to:n,onClick:l},a.createElement(p.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function Z(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,g.Z)(),{pluginId:r}=(0,E.gA)({failfast:!0}),{savePreferredVersionName:o}=(0,N.J)(r),{latestDocSuggestion:c,latestVersionSuggestion:s}=(0,E.Jo)(r),i=c??(m=s).docs.find((e=>e.id===m.mainDocId));var m;return a.createElement("div",{className:(0,d.Z)(t,L.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(_,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(C,{versionLabel:s.label,to:i.path,onClick:()=>o(s.name)})))}function x(e){let{className:t}=e;const n=(0,k.E)();return n.banner?a.createElement(Z,{className:t,versionMetadata:n}):null}function T(e){let{className:t}=e;const n=(0,k.E)();return n.badge?a.createElement("span",{className:(0,d.Z)(t,L.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(p.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}function w(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function O(e){let{lastUpdatedBy:t}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function H(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:l}=e;return a.createElement("span",{className:L.k.common.lastUpdated},a.createElement(p.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(w,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:l?a.createElement(O,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}const U="iconEdit_Z9Sw";function A(e){let{className:t,...n}=e;return a.createElement("svg",(0,u.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(U,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function M(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:L.k.common.editThisPage},a.createElement(A,null),a.createElement(p.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}const P="tag_zVej",I="tagRegular_sFm0",j="tagWithCount_h2kH";function B(e){let{permalink:t,label:n,count:l}=e;return a.createElement(v.Z,{href:t,className:(0,d.Z)(P,l?j:I)},n,l&&a.createElement("span",null,l))}const S="tags_jXut",V="tag_QGVx";function D(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(p.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(S,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:V},a.createElement(B,{label:t,permalink:n}))}))))}const R="lastUpdated_vwxv";function z(e){return a.createElement("div",{className:(0,d.Z)(L.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(D,e)))}function F(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(L.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(M,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",R)},(n||l)&&a.createElement(H,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function q(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:o}=e,c=o.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(L.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(z,{tags:o}),i&&a.createElement(F,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var G=n(6043),$=n(6668);function J(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function X(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=X({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function Q(e){const t=e.getBoundingClientRect();return t.top===t.bottom?Q(e.parentNode):t}function W(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>Q(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(Q(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function K(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,$.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function Y(e){const t=(0,a.useRef)(void 0),n=K();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:o}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),s=W(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function ee(e){let{toc:t,className:n,linkClassName:l,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:l??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(ee,{isChild:!0,toc:e.children,className:n,linkClassName:l}))))):null}const te=a.memo(ee);function ne(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:o,maxHeadingLevel:c,...s}=e;const i=(0,$.L)(),d=o??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,p=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:l}=e;return(0,a.useMemo)((()=>X({toc:J(t),minHeadingLevel:n,maxHeadingLevel:l})),[t,n,l])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return Y((0,a.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[l,r,d,m])),a.createElement(te,(0,u.Z)({toc:p,className:n,linkClassName:l},s))}const ae="tocCollapsibleButton_TO0P",le="tocCollapsibleButtonExpanded_MG3E";function re(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,u.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",ae,!t&&le,n.className)}),a.createElement(p.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const oe="tocCollapsible_ETCw",ce="tocCollapsibleContent_vkbj",se="tocCollapsibleExpanded_sAul";function ie(e){let{toc:t,className:n,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:o,toggleCollapsed:c}=(0,G.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(oe,!o&&se,n)},a.createElement(re,{collapsed:o,onClick:c}),a.createElement(G.z,{lazy:!0,className:ce,collapsed:o},a.createElement(ne,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const de="tocMobile_ITEo";function me(){const{toc:e,frontMatter:t}=s();return a.createElement(ie,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(L.k.docs.docTocMobile,de)})}const ue="tableOfContents_bqdL";function pe(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(ue,"thin-scrollbar",t)},a.createElement(ne,(0,u.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}function ve(){const{toc:e,frontMatter:t}=s();return a.createElement(pe,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:L.k.docs.docTocDesktop})}var fe=n(2503),be=n(3905),he=n(9523);function ge(e){let{children:t}=e;return a.createElement(be.Zo,{components:he.Z},t)}function Ee(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(L.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(fe.Z,{as:"h1"},n)),a.createElement(ge,null,t))}var Le=n(2802),Ne=n(8596),ke=n(4996);function ye(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const _e={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function Ce(e){let{children:t,href:n,isLast:l}=e;const r="breadcrumbs__link";return l?a.createElement("span",{className:r,itemProp:"name"},t):n?a.createElement(v.Z,{className:r,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:r},t)}function Ze(e){let{children:t,active:n,index:l,addMicrodata:r}=e;return a.createElement("li",(0,u.Z)({},r&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,d.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(l+1)}))}function xe(){const e=(0,ke.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(v.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,d.Z)("breadcrumbs__link",_e.breadcrumbsItemLink),href:e},a.createElement(ye,{className:_e.breadcrumbHomeIcon})))}function Te(){const e=(0,Le.s1)(),t=(0,Ne.Ns)();return e?a.createElement("nav",{className:(0,d.Z)(L.k.docs.docBreadcrumbs,_e.breadcrumbsContainer),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(xe,null),e.map(((t,n)=>{const l=n===e.length-1;return a.createElement(Ze,{key:n,active:l,index:n,addMicrodata:!!t.href},a.createElement(Ce,{href:t.href,isLast:l},t.label))})))):null}const we="docItemContainer_Djhp",Oe="docItemCol_VOVn";function He(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?a.createElement(me,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(ve,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&Oe)},a.createElement(x,null),a.createElement("div",{className:we},a.createElement("article",null,a.createElement(Te,null),a.createElement(T,null),n.mobile,a.createElement(Ee,null,t),a.createElement(q,null)),a.createElement(h,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function Ue(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(l.FG,{className:t},a.createElement(i,null),a.createElement(He,null,a.createElement(n,null))))}},4477:(e,t,n)=>{n.d(t,{E:()=>c,q:()=>o});var a=n(7294),l=n(902);const r=a.createContext(null);function o(e){let{children:t,version:n}=e;return a.createElement(r.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(r);if(null===e)throw new l.i6("DocsVersionProvider");return e}}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7918],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>p});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,a,l=function(e,t){if(null==e)return{};var n,a,l={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var s=a.createContext({}),i=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=i(e.components);return a.createElement(s.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=i(n),p=l,v=u["".concat(s,".").concat(p)]||u[p]||m[p]||r;return n?a.createElement(v,o(o({ref:t},d),{},{components:n})):a.createElement(v,o({ref:t},d))}));function p(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,o=new Array(r);o[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:l,o[1]=c;for(var i=2;i<r;i++)o[i]=n[i];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2047:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ue});var a=n(7294),l=n(1944),r=n(902);const o=a.createContext(null);function c(e){let{children:t,content:n}=e;const l=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(o.Provider,{value:l},t)}function s(){const e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=s();return a.createElement(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(6010),m=n(7524),u=n(7462),p=n(5999),v=n(9960);function f(e){const{permalink:t,title:n,subLabel:l,isNext:r}=e;return a.createElement(v.Z,{className:(0,d.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&a.createElement("div",{className:"pagination-nav__sublabel"},l),a.createElement("div",{className:"pagination-nav__label"},n))}function b(e){const{previous:t,next:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,p.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&a.createElement(f,(0,u.Z)({},t,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&a.createElement(f,(0,u.Z)({},n,{subLabel:a.createElement(p.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function h(){const{metadata:e}=s();return a.createElement(b,{previous:e.previous,next:e.next})}var g=n(2263),E=n(143),L=n(5281),N=n(373),k=n(4477);const y={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(p.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function _(e){const t=y[e.versionMetadata.banner];return a.createElement(t,e)}function C(e){let{versionLabel:t,to:n,onClick:l}=e;return a.createElement(p.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(v.Z,{to:n,onClick:l},a.createElement(p.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function Z(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:l}}=(0,g.Z)(),{pluginId:r}=(0,E.gA)({failfast:!0}),{savePreferredVersionName:o}=(0,N.J)(r),{latestDocSuggestion:c,latestVersionSuggestion:s}=(0,E.Jo)(r),i=c??(m=s).docs.find((e=>e.id===m.mainDocId));var m;return a.createElement("div",{className:(0,d.Z)(t,L.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(_,{siteTitle:l,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(C,{versionLabel:s.label,to:i.path,onClick:()=>o(s.name)})))}function x(e){let{className:t}=e;const n=(0,k.E)();return n.banner?a.createElement(Z,{className:t,versionMetadata:n}):null}function T(e){let{className:t}=e;const n=(0,k.E)();return n.badge?a.createElement("span",{className:(0,d.Z)(t,L.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(p.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}function w(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function O(e){let{lastUpdatedBy:t}=e;return a.createElement(p.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function H(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:l}=e;return a.createElement("span",{className:L.k.common.lastUpdated},a.createElement(p.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(w,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:l?a.createElement(O,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}const U="iconEdit_Z9Sw";function A(e){let{className:t,...n}=e;return a.createElement("svg",(0,u.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(U,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function M(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:L.k.common.editThisPage},a.createElement(A,null),a.createElement(p.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}const P="tag_zVej",I="tagRegular_sFm0",j="tagWithCount_h2kH";function B(e){let{permalink:t,label:n,count:l}=e;return a.createElement(v.Z,{href:t,className:(0,d.Z)(P,l?j:I)},n,l&&a.createElement("span",null,l))}const S="tags_jXut",V="tag_QGVx";function D(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(p.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,d.Z)(S,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:V},a.createElement(B,{label:t,permalink:n}))}))))}const R="lastUpdated_vwxv";function z(e){return a.createElement("div",{className:(0,d.Z)(L.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(D,e)))}function F(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(L.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(M,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",R)},(n||l)&&a.createElement(H,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function q(){const{metadata:e}=s(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:o}=e,c=o.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(L.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(z,{tags:o}),i&&a.createElement(F,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var G=n(6043),$=n(6668);function J(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function X(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=X({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function Q(e){const t=e.getBoundingClientRect();return t.top===t.bottom?Q(e.parentNode):t}function W(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>Q(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(Q(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function K(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:t}}=(0,$.L)();return(0,a.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function Y(e){const t=(0,a.useRef)(void 0),n=K();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:o}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),s=W(c,{anchorTopOffset:n.current}),i=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===i)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function ee(e){let{toc:t,className:n,linkClassName:l,isChild:r}=e;return t.length?a.createElement("ul",{className:r?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:l??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(ee,{isChild:!0,toc:e.children,className:n,linkClassName:l}))))):null}const te=a.memo(ee);function ne(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:o,maxHeadingLevel:c,...s}=e;const i=(0,$.L)(),d=o??i.tableOfContents.minHeadingLevel,m=c??i.tableOfContents.maxHeadingLevel,p=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:l}=e;return(0,a.useMemo)((()=>X({toc:J(t),minHeadingLevel:n,maxHeadingLevel:l})),[t,n,l])}({toc:t,minHeadingLevel:d,maxHeadingLevel:m});return Y((0,a.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:d,maxHeadingLevel:m}}),[l,r,d,m])),a.createElement(te,(0,u.Z)({toc:p,className:n,linkClassName:l},s))}const ae="tocCollapsibleButton_TO0P",le="tocCollapsibleButtonExpanded_MG3E";function re(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,u.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",ae,!t&&le,n.className)}),a.createElement(p.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const oe="tocCollapsible_ETCw",ce="tocCollapsibleContent_vkbj",se="tocCollapsibleExpanded_sAul";function ie(e){let{toc:t,className:n,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:o,toggleCollapsed:c}=(0,G.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(oe,!o&&se,n)},a.createElement(re,{collapsed:o,onClick:c}),a.createElement(G.z,{lazy:!0,className:ce,collapsed:o},a.createElement(ne,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const de="tocMobile_ITEo";function me(){const{toc:e,frontMatter:t}=s();return a.createElement(ie,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(L.k.docs.docTocMobile,de)})}const ue="tableOfContents_bqdL";function pe(e){let{className:t,...n}=e;return a.createElement("div",{className:(0,d.Z)(ue,"thin-scrollbar",t)},a.createElement(ne,(0,u.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}function ve(){const{toc:e,frontMatter:t}=s();return a.createElement(pe,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:L.k.docs.docTocDesktop})}var fe=n(2503),be=n(3905),he=n(9523);function ge(e){let{children:t}=e;return a.createElement(be.Zo,{components:he.Z},t)}function Ee(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(L.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(fe.Z,{as:"h1"},n)),a.createElement(ge,null,t))}var Le=n(2802),Ne=n(8596),ke=n(4996);function ye(e){return a.createElement("svg",(0,u.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const _e={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function Ce(e){let{children:t,href:n,isLast:l}=e;const r="breadcrumbs__link";return l?a.createElement("span",{className:r,itemProp:"name"},t):n?a.createElement(v.Z,{className:r,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:r},t)}function Ze(e){let{children:t,active:n,index:l,addMicrodata:r}=e;return a.createElement("li",(0,u.Z)({},r&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,d.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(l+1)}))}function xe(){const e=(0,ke.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(v.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,d.Z)("breadcrumbs__link",_e.breadcrumbsItemLink),href:e},a.createElement(ye,{className:_e.breadcrumbHomeIcon})))}function Te(){const e=(0,Le.s1)(),t=(0,Ne.Ns)();return e?a.createElement("nav",{className:(0,d.Z)(L.k.docs.docBreadcrumbs,_e.breadcrumbsContainer),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(xe,null),e.map(((t,n)=>{const l=n===e.length-1;return a.createElement(Ze,{key:n,active:l,index:n,addMicrodata:!!t.href},a.createElement(Ce,{href:t.href,isLast:l},t.label))})))):null}const we="docItemContainer_Djhp",Oe="docItemCol_VOVn";function He(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,m.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?a.createElement(me,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(ve,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&Oe)},a.createElement(x,null),a.createElement("div",{className:we},a.createElement("article",null,a.createElement(Te,null),a.createElement(T,null),n.mobile,a.createElement(Ee,null,t),a.createElement(q,null)),a.createElement(h,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function Ue(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(l.FG,{className:t},a.createElement(i,null),a.createElement(He,null,a.createElement(n,null))))}},4477:(e,t,n)=>{n.d(t,{E:()=>c,q:()=>o});var a=n(7294),l=n(902);const r=a.createContext(null);function o(e){let{children:t,version:n}=e;return a.createElement(r.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(r);if(null===e)throw new l.i6("DocsVersionProvider");return e}}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[3259],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>v});var r=n(7294);function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,c=function(e,t){if(null==e)return{};var n,r,c={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(c[n]=e[n]);return c}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n])}return c}var a=r.createContext({}),s=function(e){var t=r.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(a.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,c=e.mdxType,o=e.originalType,a=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(n),v=c,k=u["".concat(a,".").concat(v)]||u[v]||d[v]||o;return n?r.createElement(k,i(i({ref:t},p),{},{components:n})):r.createElement(k,i({ref:t},p))}));function v(e,t){var n=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var a in t)hasOwnProperty.call(t,a)&&(l[a]=t[a]);l.originalType=e,l.mdxType="string"==typeof e?e:c,i[1]=l;for(var s=2;s<o;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},3137:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(7462),c=(n(7294),n(3905));const o={id:"ndtservice",sidebar_position:5,title:"Tcp\u7aef\u53e3\u8f6c\u53d1",sidebar_label:"6.5 Tcp\u7aef\u53e3\u8f6c\u53d1"},i=void 0,l={unversionedId:"06\u3001Tcp\u7ec4\u4ef6/ndtservice",id:"06\u3001Tcp\u7ec4\u4ef6/ndtservice",title:"Tcp\u7aef\u53e3\u8f6c\u53d1",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/06\u3001Tcp\u7ec4\u4ef6/6.5 Tcp\u7aef\u53e3\u8f6c\u53d1.mdx",sourceDirName:"06\u3001Tcp\u7ec4\u4ef6",slug:"/06\u3001Tcp\u7ec4\u4ef6/ndtservice",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/ndtservice",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/06\u3001Tcp\u7ec4\u4ef6/6.5 Tcp\u7aef\u53e3\u8f6c\u53d1.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673598087,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:5,frontMatter:{id:"ndtservice",sidebar_position:5,title:"Tcp\u7aef\u53e3\u8f6c\u53d1",sidebar_label:"6.5 Tcp\u7aef\u53e3\u8f6c\u53d1"},sidebar:"tutorialSidebar",previous:{title:"6.4 \u540c\u6b65\u8bf7\u6c42",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/waitingclient"},next:{title:"6.6 \u670d\u52a1\u5668\u91cd\u7f6eID",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/resetid"}},a={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u5e38\u89c1\u4f7f\u7528\u573a\u666f",id:"\u4e8c\u5e38\u89c1\u4f7f\u7528\u573a\u666f",level:2},{value:"\u4e09\u3001\u53ef\u914d\u7f6e\u9879",id:"\u4e09\u53ef\u914d\u7f6e\u9879",level:2},{value:"\u56db\u3001\u521b\u5efaNATService",id:"\u56db\u521b\u5efanatservice",level:2},{value:"\u4e94\u3001\u8f6c\u53d1\u65ad\u7ebf\u91cd\u8fde\u4f01\u4e1a\u7248",id:"\u4e94\u8f6c\u53d1\u65ad\u7ebf\u91cd\u8fde\u4f01\u4e1a\u7248",level:2}],p={toc:s};function d(e){let{components:t,...n}=e;return(0,c.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,c.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,c.kt)("p",null,"NATService\u662f\u5177\u6709\u8f6c\u53d1\u529f\u80fd\u7684TCP\u670d\u52a1\u5668\u3002\u4ed6\u7684\u804c\u80fd\u662f\u5c06\u6536\u5230\u7684TCP\u6570\u636e\u8f6c\u53d1\u5230\u591a\u4e2a\u76ee\u6807\u670d\u52a1\u5668\u3002\u4e5f\u80fd\u5c06\u591a\u4e2a\u76ee\u6807\u670d\u52a1\u5668\u7684\u6570\u636e\u8f6c\u53d1\u5230\u8fde\u63a5\u5ba2\u6237\u7aef\u3002"),(0,c.kt)("h2",{id:"\u4e8c\u5e38\u89c1\u4f7f\u7528\u573a\u666f"},"\u4e8c\u3001\u5e38\u89c1\u4f7f\u7528\u573a\u666f"),(0,c.kt)("p",null,(0,c.kt)("strong",{parentName:"p"},"\u8c03\u8bd5\u573a\u666f\uff1a"),"\u5728\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u60f3\u8981\u8c03\u8bd5\u5ba2\u6237\u7aef\uff0c\u8981\u4e48\u4e2d\u65ad\u670d\u52a1\u5668\uff0c\u8981\u4e48\u5c31\u5c06\u5b9e\u9645\u6570\u636e\u8f6c\u53d1\u5230NAT\uff0c\u7136\u540e\u5728\u4e0d\u5f71\u54cd\u5b9e\u9645\u573a\u666f\u7684\u60c5\u51b5\u4e0b\u8fdb\u884c\u8c03\u8bd5\u3002"),(0,c.kt)("p",null,(0,c.kt)("strong",{parentName:"p"},"\u5185\u7f51\u7a7f\u900f\u573a\u666f\uff1a"),"\u4e00\u822ctcp\u90fd\u4f1a\u4f7f\u7528\u8f6c\u53d1\u5f0f\u7684\u5185\u7f51\u7a7f\u900f\u3002"),(0,c.kt)("h2",{id:"\u4e09\u53ef\u914d\u7f6e\u9879"},"\u4e09\u3001\u53ef\u914d\u7f6e\u9879"),(0,c.kt)("p",null,"\u7ee7\u627fTcpService\u3002"),(0,c.kt)("h2",{id:"\u56db\u521b\u5efanatservice"},"\u56db\u3001\u521b\u5efaNATService"),(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-csharp"},'static void Main(string[] args)\n{\n MyNATService service = new MyNATService();\n var config = new TouchSocketConfig();\n config.SetListenIPHosts(new IPHost[] { new IPHost(7788) });\n\n service.Setup(config);\n service.Start();\n\n Console.WriteLine("\u8f6c\u53d1\u670d\u52a1\u5668\u5df2\u542f\u52a8\u3002\u5df2\u5c067788\u7aef\u53e3\u8f6c\u53d1\u5230127.0.0.1:7789\u4e0e127.0.0.1:7790\u5730\u5740");\n}\n')),(0,c.kt)("p",null,(0,c.kt)("strong",{parentName:"p"},"NATService\u652f\u6301\u5ba2\u6237\u7aef\u9002\u914d\u5668\u548cSsl\u3002\u4e5f\u652f\u6301\u8f6c\u53d1\u9002\u914d\u5668\u548cSsl\u3002")),(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-csharp"},' class MyNATService : NATService\n {\n protected override void OnConnected(NATSocketClient socketClient, RRQMEventArgs e)\n {\n base.OnConnected(socketClient, e);\n\n try\n {\n //\u6b64\u5904\u6a21\u62df\u7684\u662f\u53ea\u8981\u8fde\u63a5\u5230NAT\u670d\u52a1\u5668\uff0c\u5c31\u8f6c\u53d1\u3002\n //\u5b9e\u9645\u4e0a\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u53ef\u4ee5\u968f\u65f6\u8c03\u7528\u3002\n socketClient.AddTargetClient(new TouchSocketConfig().SetRemoteIPHost("127.0.0.1:7789"));\n socketClient.AddTargetClient(new TouchSocketConfig().SetRemoteIPHost("127.0.0.1:7790"));\n }\n catch (Exception ex)\n {\n socketClient.Logger.Exception(ex);\n }\n }\n\n protected override void OnTargetClientDisconnected(NATSocketClient socketClient, ITcpClient tcpClient, ClientDisconnectedEventArgs e)\n {\n socketClient.Logger.Message($"{socketClient.IP}:{socketClient.Port}\u7684\u8f6c\u53d1\u5ba2\u6237\u7aef{tcpClient.IP}:{tcpClient.Port}\u5df2\u7ecf\u65ad\u5f00\u8fde\u63a5\u3002");\n base.OnTargetClientDisconnected(socketClient, tcpClient, e);\n }\n\n protected override byte[] OnNATReceived(NATSocketClient socketClient, ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n //\u670d\u52a1\u5668\u6536\u5230\u7684\u6570\u636e\n return base.OnNATReceived(socketClient, byteBlock, requestInfo);\n }\n\n protected override byte[] OnTargetClientReceived(NATSocketClient socketClient, ITcpClient tcpClient, ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n //\u8fde\u63a5\u7684\u5ba2\u6237\u7aef\u6536\u5230\u7684\u6570\u636e\n return base.OnTargetClientReceived(socketClient, tcpClient, byteBlock, requestInfo);\n }\n }\n\n\n')),(0,c.kt)("h2",{id:"\u4e94\u8f6c\u53d1\u65ad\u7ebf\u91cd\u8fde\u4f01\u4e1a\u7248"},"\u4e94\u3001\u8f6c\u53d1\u65ad\u7ebf\u91cd\u8fde\u4f01\u4e1a\u7248"),(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-csharp"},'try\n{\n //\u6b64\u5904\u6a21\u62df\u7684\u662f\u53ea\u8981\u8fde\u63a5\u5230NAT\u670d\u52a1\u5668\uff0c\u5c31\u8f6c\u53d1\u3002\n //\u5b9e\u9645\u4e0a\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u53ef\u4ee5\u968f\u65f6\u8c03\u7528\u3002\n socketClient.AddTargetClient(new TouchSocketConfig()\n .SetRemoteIPHost("127.0.0.1:7789")\n .ConfigurePlugins(a=> \n {\n //\u5728\u4f01\u4e1a\u7248\u4e2d\uff0c\u4f7f\u7528\u4ee5\u4e0b\u4efb\u610f\u65b9\u5f0f\uff0c\u53ef\u5b9e\u73b0\u8f6c\u53d1\u5ba2\u6237\u7aef\u7684\u65ad\u7ebf\u91cd\u8fde\u3002\n a.Add<PollingKeepAlivePlugin<TcpClient>>()\n .SetTick(1000);//\u6bcf\u79d2\u68c0\u67e5\n //a.UseReconnection();\n }));\n}\ncatch (Exception ex)\n{\n socketClient.Logger.Exception(ex);\n}\n')),(0,c.kt)("h2",{id:""}))}d.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7920],{2027:(e,t,n)=>{n.r(t),n.d(t,{default:()=>_});var r=n(7294),a=n(2263),l=n(8765),s=n(5742),c=n(9960),o=n(5999);const u=["zero","one","two","few","many","other"];function m(e){return u.filter((t=>e.includes(t)))}const h={locale:"en",pluralForms:m(["one","other"]),select:e=>1===e?"one":"other"};function i(){const{i18n:{currentLocale:e}}=(0,a.Z)();return(0,r.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:m(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),h}}),[e])}function p(){const e=i();return{selectMessage:(t,n)=>function(e,t,n){const r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const a=n.select(t),l=n.pluralForms.indexOf(a);return r[Math.min(l,r.length-1)]}(n,t,e)}}var g=n(6775),d=n(412);const f=function(){const e=(0,g.k6)(),t=(0,g.TH)(),{siteConfig:{baseUrl:n}}=(0,a.Z)(),r=d.Z.canUseDOM?new URLSearchParams(t.search):null,l=(null==r?void 0:r.get("q"))||"",s=(null==r?void 0:r.get("ctx"))||"",c=(null==r?void 0:r.get("version"))||"",o=e=>{const n=new URLSearchParams(t.search);return e?n.set("q",e):n.delete("q"),n};return{searchValue:l,searchContext:s,searchVersion:c,updateSearchPath:t=>{const n=o(t);e.replace({search:n.toString()})},generateSearchPageLink:e=>{const t=o(e);return`${n}search?${t.toString()}`}}};var E=n(22),y=n(8202),S=n(2539),w=n(726),v=n(1073),b=n(311),I=n(3926),P=n(1029);const k="searchQueryInput_CFBF",F="searchResultItem_U687",R="searchResultItemPath_uIbk",C="searchResultItemSummary_oZHr";function $(){const{siteConfig:{baseUrl:e}}=(0,a.Z)(),{selectMessage:t}=p(),{searchValue:n,searchContext:l,searchVersion:c,updateSearchPath:u}=f(),[m,h]=(0,r.useState)(n),[i,g]=(0,r.useState)(),[d,S]=(0,r.useState)(),w=`${e}${c}`,v=(0,r.useMemo)((()=>m?(0,o.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:m}):(0,o.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"})),[m]);(0,r.useEffect)((()=>{u(m),i&&(m?i(m,(e=>{S(e)})):S(void 0))}),[m,i]);const I=(0,r.useCallback)((e=>{h(e.target.value)}),[]);return(0,r.useEffect)((()=>{n&&n!==m&&h(n)}),[n]),(0,r.useEffect)((()=>{!async function(){const{wrappedIndexes:e,zhDictionary:t}=await(0,E.w)(w,l);g((()=>(0,y.v)(e,t,100)))}()}),[l,w]),r.createElement(r.Fragment,null,r.createElement(s.Z,null,r.createElement("meta",{property:"robots",content:"noindex, follow"}),r.createElement("title",null,v)),r.createElement("div",{className:"container margin-vert--lg"},r.createElement("h1",null,v),r.createElement("input",{type:"search",name:"q",className:k,"aria-label":"Search",onChange:I,value:m,autoComplete:"off",autoFocus:!0}),!i&&m&&r.createElement("div",null,r.createElement(b.Z,null)),d&&(d.length>0?r.createElement("p",null,t(d.length,(0,o.I)({id:"theme.SearchPage.documentsFound.plurals",message:"1 document found|{count} documents found",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)'},{count:d.length}))):r.createElement("p",null,(0,o.I)({id:"theme.SearchPage.noResultsText",message:"No documents were found",description:"The paragraph for empty search result"}))),r.createElement("section",null,d&&d.map((e=>r.createElement(x,{key:e.document.i,searchResult:e}))))))}function x(e){let{searchResult:{document:t,type:n,page:a,tokens:l,metadata:s}}=e;const o=0===n,u=2===n,m=(o?t.b:a.b).slice(),h=u?t.s:t.t;o||m.push(a.t);let i="";if(P.vc&&l.length>0){const e=new URLSearchParams;for(const t of l)e.append("_highlight",t);i=`?${e.toString()}`}return r.createElement("article",{className:F},r.createElement("h2",null,r.createElement(c.Z,{to:t.u+i+(t.h||""),dangerouslySetInnerHTML:{__html:u?(0,S.C)(h,l):(0,w.o)(h,(0,v.m)(s,"t"),l,100)}})),m.length>0&&r.createElement("p",{className:R},(0,I.e)(m)),u&&r.createElement("p",{className:C,dangerouslySetInnerHTML:{__html:(0,w.o)(t.t,(0,v.m)(s,"t"),l,100)}}))}const _=function(){return r.createElement(l.Z,null,r.createElement($,null))}}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[920],{2027:(e,t,n)=>{n.r(t),n.d(t,{default:()=>_});var r=n(7294),a=n(2263),l=n(8765),s=n(5742),c=n(9960),o=n(5999);const u=["zero","one","two","few","many","other"];function m(e){return u.filter((t=>e.includes(t)))}const h={locale:"en",pluralForms:m(["one","other"]),select:e=>1===e?"one":"other"};function i(){const{i18n:{currentLocale:e}}=(0,a.Z)();return(0,r.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:m(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),h}}),[e])}function p(){const e=i();return{selectMessage:(t,n)=>function(e,t,n){const r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const a=n.select(t),l=n.pluralForms.indexOf(a);return r[Math.min(l,r.length-1)]}(n,t,e)}}var g=n(6775),d=n(412);const f=function(){const e=(0,g.k6)(),t=(0,g.TH)(),{siteConfig:{baseUrl:n}}=(0,a.Z)(),r=d.Z.canUseDOM?new URLSearchParams(t.search):null,l=(null==r?void 0:r.get("q"))||"",s=(null==r?void 0:r.get("ctx"))||"",c=(null==r?void 0:r.get("version"))||"",o=e=>{const n=new URLSearchParams(t.search);return e?n.set("q",e):n.delete("q"),n};return{searchValue:l,searchContext:s,searchVersion:c,updateSearchPath:t=>{const n=o(t);e.replace({search:n.toString()})},generateSearchPageLink:e=>{const t=o(e);return`${n}search?${t.toString()}`}}};var E=n(22),y=n(8202),S=n(2539),w=n(726),v=n(1073),b=n(311),I=n(3926),P=n(1029);const k="searchQueryInput_CFBF",F="searchResultItem_U687",R="searchResultItemPath_uIbk",C="searchResultItemSummary_oZHr";function $(){const{siteConfig:{baseUrl:e}}=(0,a.Z)(),{selectMessage:t}=p(),{searchValue:n,searchContext:l,searchVersion:c,updateSearchPath:u}=f(),[m,h]=(0,r.useState)(n),[i,g]=(0,r.useState)(),[d,S]=(0,r.useState)(),w=`${e}${c}`,v=(0,r.useMemo)((()=>m?(0,o.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:m}):(0,o.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"})),[m]);(0,r.useEffect)((()=>{u(m),i&&(m?i(m,(e=>{S(e)})):S(void 0))}),[m,i]);const I=(0,r.useCallback)((e=>{h(e.target.value)}),[]);return(0,r.useEffect)((()=>{n&&n!==m&&h(n)}),[n]),(0,r.useEffect)((()=>{!async function(){const{wrappedIndexes:e,zhDictionary:t}=await(0,E.w)(w,l);g((()=>(0,y.v)(e,t,100)))}()}),[l,w]),r.createElement(r.Fragment,null,r.createElement(s.Z,null,r.createElement("meta",{property:"robots",content:"noindex, follow"}),r.createElement("title",null,v)),r.createElement("div",{className:"container margin-vert--lg"},r.createElement("h1",null,v),r.createElement("input",{type:"search",name:"q",className:k,"aria-label":"Search",onChange:I,value:m,autoComplete:"off",autoFocus:!0}),!i&&m&&r.createElement("div",null,r.createElement(b.Z,null)),d&&(d.length>0?r.createElement("p",null,t(d.length,(0,o.I)({id:"theme.SearchPage.documentsFound.plurals",message:"1 document found|{count} documents found",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)'},{count:d.length}))):r.createElement("p",null,(0,o.I)({id:"theme.SearchPage.noResultsText",message:"No documents were found",description:"The paragraph for empty search result"}))),r.createElement("section",null,d&&d.map((e=>r.createElement(x,{key:e.document.i,searchResult:e}))))))}function x(e){let{searchResult:{document:t,type:n,page:a,tokens:l,metadata:s}}=e;const o=0===n,u=2===n,m=(o?t.b:a.b).slice(),h=u?t.s:t.t;o||m.push(a.t);let i="";if(P.vc&&l.length>0){const e=new URLSearchParams;for(const t of l)e.append("_highlight",t);i=`?${e.toString()}`}return r.createElement("article",{className:F},r.createElement("h2",null,r.createElement(c.Z,{to:t.u+i+(t.h||""),dangerouslySetInnerHTML:{__html:u?(0,S.C)(h,l):(0,w.o)(h,(0,v.m)(s,"t"),l,100)}})),m.length>0&&r.createElement("p",{className:R},(0,I.e)(m)),u&&r.createElement("p",{className:C,dangerouslySetInnerHTML:{__html:(0,w.o)(t.t,(0,v.m)(s,"t"),l,100)}}))}const _=function(){return r.createElement(l.Z,null,r.createElement($,null))}}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[9514,4972],{9963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ie});var a=n(7294),l=n(6010),o=n(1944),r=n(5281),c=n(3320),i=n(2802),s=n(4477),d=n(1116),m=n(8765),u=n(5999),b=n(2466),p=n(5936);const h="backToTopButton_sjWU",E="backToTopButtonShow_xfvO";function f(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var v=n(6775),g=n(7524),k=n(6668),_=n(1327),C=n(7462);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const N="collapseSidebarButton_PEFL",S="collapseSidebarButtonIcon_kv0_";function Z(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",N),onClick:t},a.createElement(I,{className:S}))}var x=n(9689),y=n(902);const T=Symbol("EmptyContext"),w=a.createContext(T);function L(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(w.Provider,{value:o},t)}var M=n(6043),A=n(8596),B=n(9960),F=n(2389);function P(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,k.L)(),f=function(e){const t=(0,F.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),v=(0,i._F)(t,o),g=(0,A.Mg)(h,o),{collapsed:_,setCollapsed:I}=(0,M.u)({initialState:()=>!!b&&(!v&&t.collapsed)}),{expandedItem:N,setExpandedItem:S}=function(){const e=(0,a.useContext)(w);if(e===T)throw new y.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!_),S(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,y.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:v,collapsed:_,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&null!=N&&N!==s&&E&&I(!0)}),[b,N,s,I,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g})},a.createElement(B.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":v}),onClick:b?e=>{null==n||n(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{null==n||n(t)},"aria-current":g?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(P,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(M.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(q,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var W=n(3919),D=n(9471);const R="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(B.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&R,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(D.Z,null)))}const U="menuHtmlItem_M9Kj";function V(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[U,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function K(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(V,(0,C.Z)({item:t},n));default:return a.createElement(z,(0,C.Z)({item:t},n))}}function j(e){let{items:t,...n}=e;return a.createElement(L,null,t.map(((e,t)=>a.createElement(K,(0,C.Z)({key:t,item:e,index:t},n)))))}const q=(0,a.memo)(j),G="menu_SIkG",Y="menuWithAnnouncementBar_GW3s";function O(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,x.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.Z)("menu thin-scrollbar",G,c&&Y,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(q,{items:n,activePath:t,level:1})))}const X="sidebar_njMd",J="sidebarWithHideableNavbar_wUlq",Q="sidebarHidden_VK0M",$="sidebarLogo_isFc";function ee(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,k.L)();return a.createElement("div",{className:(0,l.Z)(X,c&&J,r&&Q)},c&&a.createElement(_.Z,{tabIndex:-1,className:$}),a.createElement(O,{path:t,sidebar:n}),i&&a.createElement(Z,{onClick:o}))}const te=a.memo(ee);var ne=n(3102),ae=n(2961);const le=e=>{let{sidebar:t,path:n}=e;const o=(0,ae.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(q,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function oe(e){return a.createElement(ne.Zo,{component:le,props:e})}const re=a.memo(oe);function ce(e){const t=(0,g.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(te,e),l&&a.createElement(re,e))}const ie="expandButton_m80_",se="expandButtonIcon_BlDH";function de(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ie,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:se}))}const me="docSidebarContainer_b6E3",ue="docSidebarContainerHidden_b3ry";function be(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:(null==n?void 0:n.name)??"noSidebar"},t)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,v.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,me,n&&ue),onTransitionEnd:e=>{e.currentTarget.classList.contains(me)&&n&&s(!0)}},a.createElement(be,null,a.createElement(ce,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(de,{toggleSidebar:d}))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(he.docMainContainer,(t||!o)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}const fe="docPage__5DB",ve="docsWrapper_BCFX";function ge(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:ve},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var ke=n(4972),_e=n(197);function Ce(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(_e.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function Ie(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(ke.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(Ce,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(ge,null,c)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(5999),o=n(1944),r=n(8765);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},4477:(e,t,n)=>{n.d(t,{E:()=>c,q:()=>r});var a=n(7294),l=n(902);const o=a.createContext(null);function r(e){let{children:t,version:n}=e;return a.createElement(o.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(o);if(null===e)throw new l.i6("DocsVersionProvider");return e}}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[514,972],{9963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ie});var a=n(7294),l=n(6010),o=n(1944),r=n(5281),c=n(3320),i=n(2802),s=n(4477),d=n(1116),m=n(8765),u=n(5999),b=n(2466),p=n(5936);const h="backToTopButton_sjWU",E="backToTopButtonShow_xfvO";function f(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a<t?l(!1):a+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var v=n(6775),g=n(7524),k=n(6668),_=n(1327),C=n(7462);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const N="collapseSidebarButton_PEFL",S="collapseSidebarButtonIcon_kv0_";function Z(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",N),onClick:t},a.createElement(I,{className:S}))}var x=n(9689),y=n(902);const T=Symbol("EmptyContext"),w=a.createContext(T);function L(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(w.Provider,{value:o},t)}var M=n(6043),A=n(8596),B=n(9960),F=n(2389);function P(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function H(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,k.L)(),f=function(e){const t=(0,F.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),v=(0,i._F)(t,o),g=(0,A.Mg)(h,o),{collapsed:_,setCollapsed:I}=(0,M.u)({initialState:()=>!!b&&(!v&&t.collapsed)}),{expandedItem:N,setExpandedItem:S}=function(){const e=(0,a.useContext)(w);if(e===T)throw new y.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!_),S(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,y.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:v,collapsed:_,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&null!=N&&N!==s&&E&&I(!0)}),[b,N,s,I,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":_},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g})},a.createElement(B.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":v}),onClick:b?e=>{null==n||n(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{null==n||n(t)},"aria-current":g?"page":void 0,"aria-expanded":b?!_:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(P,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(M.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},a.createElement(q,{items:m,tabIndex:_?-1:0,onItemClick:n,activePath:o,level:c+1})))}var W=n(3919),D=n(9471);const R="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(B.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&R,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(D.Z,null)))}const U="menuHtmlItem_M9Kj";function V(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[U,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function K(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(H,(0,C.Z)({item:t},n));case"html":return a.createElement(V,(0,C.Z)({item:t},n));default:return a.createElement(z,(0,C.Z)({item:t},n))}}function j(e){let{items:t,...n}=e;return a.createElement(L,null,t.map(((e,t)=>a.createElement(K,(0,C.Z)({key:t,item:e,index:t},n)))))}const q=(0,a.memo)(j),G="menu_SIkG",Y="menuWithAnnouncementBar_GW3s";function O(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,x.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.Z)("menu thin-scrollbar",G,c&&Y,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(q,{items:n,activePath:t,level:1})))}const X="sidebar_njMd",J="sidebarWithHideableNavbar_wUlq",Q="sidebarHidden_VK0M",$="sidebarLogo_isFc";function ee(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,k.L)();return a.createElement("div",{className:(0,l.Z)(X,c&&J,r&&Q)},c&&a.createElement(_.Z,{tabIndex:-1,className:$}),a.createElement(O,{path:t,sidebar:n}),i&&a.createElement(Z,{onClick:o}))}const te=a.memo(ee);var ne=n(3102),ae=n(2961);const le=e=>{let{sidebar:t,path:n}=e;const o=(0,ae.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(q,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function oe(e){return a.createElement(ne.Zo,{component:le,props:e})}const re=a.memo(oe);function ce(e){const t=(0,g.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(te,e),l&&a.createElement(re,e))}const ie="expandButton_m80_",se="expandButtonIcon_BlDH";function de(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ie,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:se}))}const me="docSidebarContainer_b6E3",ue="docSidebarContainerHidden_b3ry";function be(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:(null==n?void 0:n.name)??"noSidebar"},t)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,v.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,me,n&&ue),onTransitionEnd:e=>{e.currentTarget.classList.contains(me)&&n&&s(!0)}},a.createElement(be,null,a.createElement(ce,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(de,{toggleSidebar:d}))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(he.docMainContainer,(t||!o)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}const fe="docPage__5DB",ve="docsWrapper_BCFX";function ge(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:ve},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var ke=n(4972),_e=n(197);function Ce(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(_e.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function Ie(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(ke.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(Ce,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(ge,null,c)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(5999),o=n(1944),r=n(8765);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},4477:(e,t,n)=>{n.d(t,{E:()=>c,q:()=>r});var a=n(7294),l=n(902);const o=a.createContext(null);function r(e){let{children:t,version:n}=e;return a.createElement(o.Provider,{value:n},t)}function c(){const e=(0,a.useContext)(o);if(null===e)throw new l.i6("DocsVersionProvider");return e}}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[459],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),f=p(r),d=o,m=f["".concat(l,".").concat(d)]||f[d]||s[d]||c;return r?n.createElement(m,a(a({ref:t},u),{},{components:r})):n.createElement(m,a({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,a[1]=i;for(var p=2;p<c;p++)a[p]=r[p];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},7949:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>c,metadata:()=>i,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const c={id:"cooperation",title:"\u5546\u4e1a\u5408\u4f5c",sidebar_label:"a.\u5546\u4e1a\u5408\u4f5c"},a=void 0,i={unversionedId:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",id:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",title:"\u5546\u4e1a\u5408\u4f5c",description:"RRQM\u627f\u63a5WPF\u53ca\u7f51\u7edc\u901a\u4fe1\u76f8\u5173\u7684\u5f00\u53d1\u4efb\u52a1\u3002\u4ef7\u683c\u8be6\u60c5\u54a8\u8be2\u82e5\u6c5d\u68cb\u8317\u3002QQ\uff1a505554090",source:"@site/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/a.\u5546\u4e1a\u5408\u4f5c.mdx",sourceDirName:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee",slug:"/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/a.\u5546\u4e1a\u5408\u4f5c.mdx",tags:[],version:"current",frontMatter:{id:"cooperation",title:"\u5546\u4e1a\u5408\u4f5c",sidebar_label:"a.\u5546\u4e1a\u5408\u4f5c"},sidebar:"tutorialSidebar",previous:{title:"3.2 \u4f01\u4e1a\u7248\u76f8\u5173",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/enterprise"},next:{title:"b.WPF\u754c\u9762\u3001\u6587\u4ef6\u4f20\u8f93\u9879\u76ee",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/wpfuifiletransfer"}},l={},p=[],u={toc:p};function s(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"RRQM\u627f\u63a5WPF\u53ca\u7f51\u7edc\u901a\u4fe1\u76f8\u5173\u7684\u5f00\u53d1\u4efb\u52a1\u3002\u4ef7\u683c\u8be6\u60c5\u54a8\u8be2\u82e5\u6c5d\u68cb\u8317\u3002QQ\uff1a505554090"),(0,o.kt)("p",null,"\u652f\u4ed8\u53ef\u901a\u8fc7\u6dd8\u5b9d\u3002\u5b89\u5168\u6709\u4fdd\u969c\u3002"))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4459],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),f=p(r),d=o,m=f["".concat(l,".").concat(d)]||f[d]||u[d]||a;return r?n.createElement(m,c(c({ref:t},s),{},{components:r})):n.createElement(m,c({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,c[1]=i;for(var p=2;p<a;p++)c[p]=r[p];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},7949:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const a={id:"cooperation",title:"\u5546\u4e1a\u5408\u4f5c",sidebar_label:"a.\u5546\u4e1a\u5408\u4f5c"},c=void 0,i={unversionedId:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",id:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",title:"\u5546\u4e1a\u5408\u4f5c",description:"RRQM\u627f\u63a5WPF\u53ca\u7f51\u7edc\u901a\u4fe1\u76f8\u5173\u7684\u5f00\u53d1\u4efb\u52a1\u3002\u4ef7\u683c\u8be6\u60c5\u54a8\u8be2\u82e5\u6c5d\u68cb\u8317\u3002QQ\uff1a505554090",source:"@site/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/a.\u5546\u4e1a\u5408\u4f5c.mdx",sourceDirName:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee",slug:"/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/cooperation",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/a.\u5546\u4e1a\u5408\u4f5c.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",frontMatter:{id:"cooperation",title:"\u5546\u4e1a\u5408\u4f5c",sidebar_label:"a.\u5546\u4e1a\u5408\u4f5c"},sidebar:"tutorialSidebar",previous:{title:"3.2 \u4f01\u4e1a\u7248\u76f8\u5173",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/enterprise"},next:{title:"b.WPF\u754c\u9762\u3001\u6587\u4ef6\u4f20\u8f93\u9879\u76ee",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/wpfuifiletransfer"}},l={},p=[],s={toc:p};function u(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"RRQM\u627f\u63a5WPF\u53ca\u7f51\u7edc\u901a\u4fe1\u76f8\u5173\u7684\u5f00\u53d1\u4efb\u52a1\u3002\u4ef7\u683c\u8be6\u60c5\u54a8\u8be2\u82e5\u6c5d\u68cb\u8317\u3002QQ\uff1a505554090"),(0,o.kt)("p",null,"\u652f\u4ed8\u53ef\u901a\u8fc7\u6dd8\u5b9d\u3002\u5b89\u5168\u6709\u4fdd\u969c\u3002"))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8689],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=s(n),m=a,k=c["".concat(p,".").concat(m)]||c[m]||u[m]||o;return n?r.createElement(k,l(l({ref:t},d),{},{components:n})):r.createElement(k,l({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}c.displayName="MDXCreateElement"},6879:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const o={id:"createudpsession",sidebar_position:2,title:"\u521b\u5efaUdpSession",sidebar_label:"7.2 \u521b\u5efaUdpSession"},l=void 0,i={unversionedId:"07\u3001Udp\u7ec4\u4ef6/createudpsession",id:"07\u3001Udp\u7ec4\u4ef6/createudpsession",title:"\u521b\u5efaUdpSession",description:"\u8bf4\u660e",source:"@site/docs/07\u3001Udp\u7ec4\u4ef6/7.2 \u521b\u5efaUdpSession.mdx",sourceDirName:"07\u3001Udp\u7ec4\u4ef6",slug:"/07\u3001Udp\u7ec4\u4ef6/createudpsession",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/createudpsession",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/07\u3001Udp\u7ec4\u4ef6/7.2 \u521b\u5efaUdpSession.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{id:"createudpsession",sidebar_position:2,title:"\u521b\u5efaUdpSession",sidebar_label:"7.2 \u521b\u5efaUdpSession"},sidebar:"tutorialSidebar",previous:{title:"7.1 \u4ea7\u54c1\u53ca\u67b6\u6784\u4ecb\u7ecd",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/upddescription"},next:{title:"7.3 \u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/transmitbigdata"}},p={},s=[{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u53ef\u914d\u7f6e\u9879",id:"\u53ef\u914d\u7f6e\u9879",level:2},{value:"\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u3001\u670d\u52a1\u5668\u5747\u652f\u6301",id:"\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u670d\u52a1\u5668\u5747\u652f\u6301",level:2},{value:"\u4f7f\u7528UdpSession",id:"\u4f7f\u7528udpsession",level:2},{value:"\u4e3b\u8981\u65b9\u6cd5\u7b80\u4ecb",id:"\u4e3b\u8981\u65b9\u6cd5\u7b80\u4ecb",level:2},{value:"\u89c6\u9891\u4ecb\u7ecd",id:"\u89c6\u9891\u4ecb\u7ecd",level:2}],d={toc:s};function u(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,a.kt)("p",null,"UdpSession\u65e2\u80fd\u5145\u5f53\u670d\u52a1\u5668\uff0c\u53c8\u80fd\u591f\u4f5c\u4e3a\u5ba2\u6237\u7aef\u3002"),(0,a.kt)("h2",{id:"\u53ef\u914d\u7f6e\u9879"},"\u53ef\u914d\u7f6e\u9879"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u540d")),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u63cf\u8ff0")))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SetBufferLength"),(0,a.kt)("td",{parentName:"tr",align:null},"\u7f13\u5b58\u6c60\u5bb9\u91cf\uff0c\u9ed8\u8ba41024*64")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SetThreadCount"),(0,a.kt)("td",{parentName:"tr",align:null},"\u591a\u7ebf\u7a0b\u6570\u91cf\u3002\u8be5\u503c\u6807\u8bc6\u91cd\u53e0IO\u7684\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a10\uff0c\u8be5\u503c\u4e0d\u8981\u8bbe\u7f6e\u592a\u5927\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SetServerName"),(0,a.kt)("td",{parentName:"tr",align:null},"\u670d\u52a1\u5668\u6807\u8bc6\u540d\u79f0\uff0c\u65e0\u5b9e\u9645\u4f7f\u7528\u610f\u4e49\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SetReceiveType"),(0,a.kt)("td",{parentName:"tr",align:null},"\u63a5\u6536\u7c7b\u578b\u3002")))),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"AUTO\uff1a\u81ea\u52a8\u63a5\u6536\u6a21\u5f0f\u3002"),(0,a.kt)("li",{parentName:"ul"},"None\uff1aUDP\u4e0d\u652f\u6301\n|\n| UsePlugin | \u662f\u5426\u542f\u7528\u63d2\u4ef6\u3002\u5728\u542f\u7528\u65f6\u6216\u8bb8\u4f1a\u5e26\u6765\u4e00\u70b9\u70b9\u6027\u80fd\u635f\u8017\uff0c\u57fa\u672c\u4e0a\u4e0d\u662f\u5343\u4e07\u6570\u636e\u4ea4\u4e92\u6839\u672c\u4e0d\u503c\u4e00\u63d0\u3002 |\n| SetBindIPHost | \u8868\u793a\u672c\u5730\u76d1\u542c\u5730\u5740 |\n| SetRemoteIPHost | \u8868\u793a\u9ed8\u8ba4\u53d1\u9001\u65f6\u7684\u76ee\u6807\u5730\u5740\uff0c\u4e00\u822c\u4f5c\u4e3a\u5ba2\u6237\u7aef\u65f6\u5efa\u8bae\u8bbe\u7f6e\u3002 |\n| UseReuseAddress | \u542f\u7528\u7aef\u53e3\u590d\u7528\u3002\u8be5\u914d\u7f6e\u53ef\u5728\u670d\u52a1\u5668\u3001\u6216\u5ba2\u6237\u7aef\u5728\u76d1\u542c\u7aef\u53e3\u65f6\uff0c\u8fd0\u884c\u76d1\u542c\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u53ef\u4ee5\u4e00\u5b9a\u7a0b\u5ea6\u7f13\u89e3\u7aef\u53e3\u6765\u4e0d\u53ca\u91ca\u653e\u7684\u95ee\u9898 |\n| UseBroadcast | \u8be5\u503c\u6307\u5b9a\u53ef\u4ee5\u53d1\u9001\u6216\u63a5\u6536\u5e7f\u64ad\u6570\u636e\u5305\u3002 |")),(0,a.kt)("h2",{id:"\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u670d\u52a1\u5668\u5747\u652f\u6301"},"\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u3001\u670d\u52a1\u5668\u5747\u652f\u6301"),(0,a.kt)("p",null,"\u58f0\u660e\u81ea\u5b9a\u4e49\u5b9e\u4f8b\u7c7b\uff0c\u7136\u540e\u5b9e\u73b0",(0,a.kt)("strong",{parentName:"p"},"IUdpSession"),"\u63a5\u53e3\uff0c\u5373\u53ef\u5b9e\u73b0\u4e0b\u5217\u4e8b\u52a1\u7684\u89e6\u53d1\u3002\n\u6216\u8005\u7ee7\u627f\u81ea",(0,a.kt)("strong",{parentName:"p"},"UdpSessionBase"),"\u7c7b\uff0c\u91cd\u5199\u76f8\u5e94\u65b9\u6cd5\u5373\u53ef\u3002"),(0,a.kt)("p",null,"| ### IUdpSession\n| |\n| --- | --- |\n| OnReceivedData | \u5728\u6536\u5230\u6570\u636e\u65f6\u89e6\u53d1 |"),(0,a.kt)("h2",{id:"\u4f7f\u7528udpsession"},"\u4f7f\u7528UdpSession"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'UdpSession udpSession = new UdpSession();\nudpSession.Received += (remote, byteBlock,requestInfo) =>\n{\n udpSession.Send(remote, byteBlock);\n Console.WriteLine($"\u6536\u5230\uff1a{Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len)}");\n};\nudpSession.Setup(new TouchSocketConfig()\n .SetBindIPHost(new IPHost(7789)))\n .Start();\nConsole.WriteLine("\u7b49\u5f85\u63a5\u6536");\n\n')),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u6ce8\u610f\u4e8b\u9879\uff1a")),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},"\u5373\u4f7f\u4e0d\u76d1\u542c\u5730\u5740\uff0cSetup\u548cStart\u90fd\u662f\u5fc5\u987b\u8981\u7684\u3002")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("strong",{parentName:"li"},"\u5f53udp\u4f5c\u4e3a\u5ba2\u6237\u7aef\u65f6\uff0cConfig\u5982\u679c\u4e0d\u8bbe\u7f6eSetBindIPHost\uff0c\u5c06\u4e0d\u4f1a\u63a5\u6536\uff0c\u5982\u679c\u4e0d\u77e5\u9053\u7ed1\u5b9a\u90a3\u4e2a\u7aef\u53e3\uff0c\u53ef\u4ee5\u76f4\u63a5\u7ed1\u5b9a0\u7aef\u53e3\uff0c\u8fd9\u6837\uff0c\u5c31\u4f1a\u4f7f\u7528\u7cfb\u7edf\u7a7a\u95f2\u7684\u4e00\u4e2a\u7aef\u53e3\u4e86 "))),(0,a.kt)("h2",{id:"\u4e3b\u8981\u65b9\u6cd5\u7b80\u4ecb"},"\u4e3b\u8981\u65b9\u6cd5\u7b80\u4ecb"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u65b9\u6cd5\u540d")),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u529f\u80fd\u7b80\u4ecb")))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Start"),(0,a.kt)("td",{parentName:"tr",align:null},"\u542f\u52a8\u670d\u52a1\u5668")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Stop"),(0,a.kt)("td",{parentName:"tr",align:null},"\u505c\u6b62\u670d\u52a1\u5668\uff0c\u53ef\u518d\u6b21\u8c03\u7528Start\u91cd\u65b0\u4f7f\u7528")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Dispose"),(0,a.kt)("td",{parentName:"tr",align:null},"\u91ca\u653e\u670d\u52a1\u5668\uff0c\u4e0d\u53ef\u518d\u8c03\u7528Start\u4f7f\u7528")))),(0,a.kt)("h2",{id:"\u89c6\u9891\u4ecb\u7ecd"},"\u89c6\u9891\u4ecb\u7ecd"))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8423],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=s(r),f=o,m=u["".concat(p,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,c(c({ref:t},l),{},{components:r})):n.createElement(m,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:o,c[1]=i;for(var s=2;s<a;s++)c[s]=r[s];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},8461:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const a={id:"tcpother",sidebar_position:10,title:"\u5176\u4ed6\u573a\u666f\u5e94\u7528",sidebar_label:"6.10 \u5176\u4ed6\u573a\u666f\u5e94\u7528"},c=void 0,i={unversionedId:"06\u3001Tcp\u7ec4\u4ef6/tcpother",id:"06\u3001Tcp\u7ec4\u4ef6/tcpother",title:"\u5176\u4ed6\u573a\u666f\u5e94\u7528",description:"\u25cf https://blog.csdn.net/qq_40374647/article/details/125496769?spm=1001.2014.3001.5501",source:"@site/docs/06\u3001Tcp\u7ec4\u4ef6/6.10 \u5176\u4ed6\u573a\u666f\u5e94\u7528.mdx",sourceDirName:"06\u3001Tcp\u7ec4\u4ef6",slug:"/06\u3001Tcp\u7ec4\u4ef6/tcpother",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/tcpother",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/06\u3001Tcp\u7ec4\u4ef6/6.10 \u5176\u4ed6\u573a\u666f\u5e94\u7528.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673598087,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:10,frontMatter:{id:"tcpother",sidebar_position:10,title:"\u5176\u4ed6\u573a\u666f\u5e94\u7528",sidebar_label:"6.10 \u5176\u4ed6\u573a\u666f\u5e94\u7528"},sidebar:"tutorialSidebar",previous:{title:"6.9 \u5fc3\u8df3\u8bbe\u8ba1",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/heartbeat"},next:{title:"7.1 \u4ea7\u54c1\u53ca\u67b6\u6784\u4ecb\u7ecd",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/upddescription"}},p={},s=[],l={toc:s};function d(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"\u25cf ",(0,o.kt)("a",{parentName:"p",href:"https://blog.csdn.net/qq_40374647/article/details/125496769?spm=1001.2014.3001.5501"},"https://blog.csdn.net/qq_40374647/article/details/125496769?spm=1001.2014.3001.5501"),"\n\u25cf ",(0,o.kt)("a",{parentName:"p",href:"https://blog.csdn.net/qq_40374647/article/details/125390655?spm=1001.2014.3001.5501"},"https://blog.csdn.net/qq_40374647/article/details/125390655?spm=1001.2014.3001.5501"),"\n\u25cf ",(0,o.kt)("a",{parentName:"p",href:"https://blog.csdn.net/qq_40374647/article/details/128640132"},"https://blog.csdn.net/qq_40374647/article/details/128640132"),"\n\u25cf ",(0,o.kt)("a",{parentName:"p",href:"https://blog.csdn.net/qq_40374647/article/details/128641766"},"https://blog.csdn.net/qq_40374647/article/details/128641766")))}d.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5480],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=r.createContext({}),p=function(e){var t=r.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(a.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,a=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(n),m=o,f=d["".concat(a,".").concat(m)]||d[m]||u[m]||l;return n?r.createElement(f,c(c({ref:t},s),{},{components:n})):r.createElement(f,c({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,c=new Array(l);c[0]=d;var i={};for(var a in t)hasOwnProperty.call(t,a)&&(i[a]=t[a]);i.originalType=e,i.mdxType="string"==typeof e?e:o,c[1]=i;for(var p=2;p<l;p++)c[p]=n[p];return r.createElement.apply(null,c)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},9162:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const l={id:"reconnection",sidebar_position:7,title:"\u65ad\u7ebf\u91cd\u8fde",sidebar_label:"6.7 \u65ad\u7ebf\u91cd\u8fde"},c=void 0,i={unversionedId:"06\u3001Tcp\u7ec4\u4ef6/reconnection",id:"06\u3001Tcp\u7ec4\u4ef6/reconnection",title:"\u65ad\u7ebf\u91cd\u8fde",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/06\u3001Tcp\u7ec4\u4ef6/6.7 \u65ad\u7ebf\u91cd\u8fde.mdx",sourceDirName:"06\u3001Tcp\u7ec4\u4ef6",slug:"/06\u3001Tcp\u7ec4\u4ef6/reconnection",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/reconnection",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/06\u3001Tcp\u7ec4\u4ef6/6.7 \u65ad\u7ebf\u91cd\u8fde.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673598087,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:7,frontMatter:{id:"reconnection",sidebar_position:7,title:"\u65ad\u7ebf\u91cd\u8fde",sidebar_label:"6.7 \u65ad\u7ebf\u91cd\u8fde"},sidebar:"tutorialSidebar",previous:{title:"6.6 \u670d\u52a1\u5668\u91cd\u7f6eID",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/resetid"},next:{title:"6.8 \u547d\u4ee4\u884c\u6267\u884c\u63d2\u4ef6",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/tcpcommandlineplugin"}},a={},p=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u4f7f\u7528Reconnection\u63d2\u4ef6",id:"\u4e8c\u4f7f\u7528reconnection\u63d2\u4ef6",level:2},{value:"\u4e09\u3001\u4f7f\u7528PollingKeepAlive\u63d2\u4ef6\u4ec5\u4f01\u4e1a\u7248",id:"\u4e09\u4f7f\u7528pollingkeepalive\u63d2\u4ef6\u4ec5\u4f01\u4e1a\u7248",level:2}],s={toc:p};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,o.kt)("p",null,"\u6240\u8c13\u65ad\u7ebf\u91cd\u8fde\uff0c\u5373tcp\u5ba2\u6237\u7aef\u5728\u65ad\u5f00\u670d\u52a1\u5668\u540e\uff0c\u4e3b\u52a8\u53d1\u8d77\u7684\u518d\u6b21\u8fde\u63a5\u8bf7\u6c42\u3002"),(0,o.kt)("h2",{id:"\u4e8c\u4f7f\u7528reconnection\u63d2\u4ef6"},"\u4e8c\u3001\u4f7f\u7528Reconnection\u63d2\u4ef6"),(0,o.kt)("p",null,"\u4f7f\u7528\u65ad\u7ebf\u91cd\u8fde\u975e\u5e38\u7b80\u5355\uff0c\u4ec5\u4e00\u884c\u4ee3\u7801\u5b8c\u6210\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},".UsePlugin()\n.ConfigurePlugins(a=> \n{\n a.UseReconnection(5, true, 1000);//\u5982\u9700\u6c38\u8fdc\u5c1d\u8bd5\u8fde\u63a5\uff0ctryCount\u8bbe\u7f6e\u4e3a-1\u5373\u53ef\u3002\n});\n")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"\u6ce8\u610f\uff1a"),"\u65ad\u7ebf\u91cd\u8fde\uff0c\u5fc5\u987b\u6ee1\u8db3\u4ee5\u4e0b\u51e0\u4e2a\u8981\u6c42\uff1a"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u5b8c\u6210\u7b2c\u4e00\u6b21\u8fde\u63a5"),(0,o.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u662f\u88ab\u52a8\u65ad\u5f00\uff0c\u5982\u679c\u662f\u5ba2\u6237\u7aef\u4e3b\u52a8\u8c03\u7528Close\u3001Disconnect\u7b49\u65b9\u6cd5\u4e3b\u52a8\u65ad\u5f00\u7684\u8bdd\uff0c\u4e0d\u4f1a\u751f\u6548\u3002"),(0,o.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u6709\u663e\u5f0f\u7684\u65ad\u5f00\u4fe1\u606f\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u76f4\u63a5\u62d4\u7f51\u7ebf\u7684\u8bdd\uff0c\u4e0d\u4f1a\u7acb\u5373\u751f\u6548\uff0c\u4f1a\u7b49tcp\u4fdd\u6d3b\u5230\u671f\u540e\u518d\u751f\u6548\u3002")),(0,o.kt)("h2",{id:"\u4e09\u4f7f\u7528pollingkeepalive\u63d2\u4ef6\u4ec5\u4f01\u4e1a\u7248"},"\u4e09\u3001\u4f7f\u7528PollingKeepAlive\u63d2\u4ef6\u4ec5\u4f01\u4e1a\u7248"),(0,o.kt)("p",null,"\u4f01\u4e1a\u7248\u4f7f\u7528\u65ad\u7ebf\u91cd\u8fde\uff0c\u5728\u517c\u5bb9\u4e0a\u8ff0\u65b9\u6cd5\u7684\u540c\u65f6\uff0c\u8fd8\u652f\u6301\u4e00\u79cd\u6781\u4e3a\u9738\u9053\u7684\u8fde\u63a5\u65b9\u5f0f\uff0c\u5373\u8f6e\u8be2\u5f0f\u8fde\u63a5\uff0c\u4f7f\u7528\u4e5f\u975e\u5e38\u7b80\u5355\uff0c\u4ec5\u4e00\u884c\u4ee3\u7801\u5b8c\u6210\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},".UsePlugin()\n.ConfigurePlugins(a=> \n{\n a.Add<PollingKeepAlivePlugin<TcpClient>>()\n .SetTick(1000);//\u6bcf\u79d2\u68c0\u67e5\n});\n")),(0,o.kt)("p",null,"\u8be5\u65b9\u5f0f\u4e00\u822c\u7528\u4e8e\u65e0\u4eba\u503c\u5b88\u7684\u5ba2\u6237\u7aef\u3002\n",(0,o.kt)("strong",{parentName:"p"},"\u6ce8\u610f\uff1a"),"PollingKeepAlive\u65ad\u7ebf\u91cd\u8fde\uff0c\u5fc5\u987b\u6ee1\u8db3\u4ee5\u4e0b\u51e0\u4e2a\u8981\u6c42\uff1a"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"\u4e0d\u8981\u548cUseReconnection\u4e00\u540c\u4f7f\u7528"),(0,o.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u6709\u663e\u5f0f\u7684\u65ad\u5f00\u4fe1\u606f\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u76f4\u63a5\u62d4\u7f51\u7ebf\u7684\u8bdd\uff0c\u4e0d\u4f1a\u7acb\u5373\u751f\u6548\uff0c\u4f1a\u7b49tcp\u4fdd\u6d3b\u5230\u671f\u540e\u518d\u751f\u6548\u3002")))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[701],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>b});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(n),b=i,m=u["".concat(l,".").concat(b)]||u[b]||p[b]||a;return n?r.createElement(m,o(o({ref:t},d),{},{components:n})):r.createElement(m,o({ref:t},d))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:i,o[1]=s;for(var c=2;c<a;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},5528:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(7462),i=(n(7294),n(3905));const a={id:"fastbinaryformatter",sidebar_position:7,title:"\u9ad8\u6027\u80fd\u5e8f\u5217\u5316",sidebar_label:"4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316"},o=void 0,s={unversionedId:"04\u3001Core/fastbinaryformatter",id:"04\u3001Core/fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/fastbinaryformatter",permalink:"/touchsocket/docs/04\u3001Core/fastbinaryformatter",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316.mdx",tags:[],version:"current",sidebarPosition:7,frontMatter:{id:"fastbinaryformatter",sidebar_position:7,title:"\u9ad8\u6027\u80fd\u5e8f\u5217\u5316",sidebar_label:"4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316"},sidebar:"tutorialSidebar",previous:{title:"4.6 \u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/04\u3001Core/appmessenger"},next:{title:"4.8 Json\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/04\u3001Core/jsonserialize"}},l={},c=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u5e8f\u5217\u5316",id:"\u4e8c\u5e8f\u5217\u5316",level:2},{value:"\u4e09\u3001\u53cd\u5e8f\u5217\u5316",id:"\u4e09\u53cd\u5e8f\u5217\u5316",level:2},{value:"\u56db\u3001\u5feb\u6377\u5e8f\u5217\u5316",id:"\u56db\u5feb\u6377\u5e8f\u5217\u5316",level:2},{value:"image.png",id:"imagepng",level:2},{value:"\u4e94\u3001\u6027\u80fd\u5bf9\u6bd4",id:"\u4e94\u6027\u80fd\u5bf9\u6bd4",level:2}],d={toc:c};function p(e){let{components:t,...n}=e;return(0,i.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,i.kt)("p",null,"\u8be5\u5e8f\u5217\u5316\u4ee5\u4e8c\u8fdb\u5236\u65b9\u5f0f\u8fdb\u884c\u5e8f\u5217\u5316\uff0c\u4e0d\u8981\u6c42\u7c7b\u578b\u76f8\u540c\uff0c\u4ec5\u4e3a",(0,i.kt)("a",{parentName:"p",href:"https://www.yuque.com/eo2w71/rrqm/d104f4159d543b4ae28db195ef623cf7#Y0Cko"},"\u76f8\u4f3c\u7ed3\u6784"),"\u5373\u53ef\u3002\u652f\u6301",(0,i.kt)("strong",{parentName:"p"},"\u57fa\u7840\u7c7b\u578b"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u81ea\u5b9a\u4e49\u5b9e\u4f53\u7c7b"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u7ed3\u6784\u4f53"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u6570\u636e"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u5b57\u5178"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"List"),"\u3001\u4ee5\u53ca\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u3002\n",(0,i.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/RRQMCore/"})),(0,i.kt)("h2",{id:"\u4e8c\u5e8f\u5217\u5316"},"\u4e8c\u3001\u5e8f\u5217\u5316"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"}," public static void FastBinarySerialize(ByteBlock stream, object obj)\n {\n FastBinaryFormatter bf = new FastBinaryFormatter();\n bf.Serialize(stream, obj);\n }\n")),(0,i.kt)("h2",{id:"\u4e09\u53cd\u5e8f\u5217\u5316"},"\u4e09\u3001\u53cd\u5e8f\u5217\u5316"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"},"public object RRQMBinaryDeserialize(byte[] data, int offset, Type type)\n{\n FastBinaryFormatter bf = new FastBinaryFormatter();\n return bf.Deserialize(data, offset, type);\n}\n")),(0,i.kt)("h2",{id:"\u56db\u5feb\u6377\u5e8f\u5217\u5316"},"\u56db\u3001\u5feb\u6377\u5e8f\u5217\u5316"),(0,i.kt)("p",null,"\u5728\u9759\u6001\u7c7b",(0,i.kt)("inlineCode",{parentName:"p"},"SerializeConvert"),"\u4e2d\uff0c\u63d0\u4f9b\u4e86\u5feb\u6377\u7684\u5e8f\u5217\u5316\u65b9\u5f0f\uff0c\u4ee5\u4f9b\u65b9\u4fbf\u4f7f\u7528\u3002"),(0,i.kt)("h2",{id:"imagepng"},(0,i.kt)("img",{parentName:"h2",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1663812694768-3b2d4cb6-c589-4479-9f9b-222a9ab65991.png#clientId=u051b4acd-2df2-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=326&id=ud292820e&name=image.png&originHeight=326&originWidth=1152&originalType=binary&ratio=1&rotation=0&showTitle=false&size=345481&status=done&style=none&taskId=u77352d5a-8e74-4dd0-ac51-49017d791ed&title=&width=1152",alt:"image.png"})),(0,i.kt)("h2",{id:""}),(0,i.kt)("h2",{id:"\u4e94\u6027\u80fd\u5bf9\u6bd4"},"\u4e94\u3001\u6027\u80fd\u5bf9\u6bd4"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u5f85\u6d4b\u8bd5\u7c7b")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"},' [Serializable]\npublic class Student\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n\n public List<int> List1 { get; set; }\n public List<string> List2 { get; set; }\n public List<byte[]> List3 { get; set; }\n\n public Dictionary<int, int> Dic1 { get; set; }\n public Dictionary<int, string> Dic2 { get; set; }\n public Dictionary<string, string> Dic3 { get; set; }\n public Dictionary<int, Arg> Dic4 { get; set; }\n}\n[Serializable]\npublic class Arg\n{\n public Arg(int myProperty)\n {\n this.MyProperty = myProperty;\n }\n\n public Arg()\n {\n Person person = new Person();\n person.Name = "\u5f20\u4e09";\n person.Age = 18;\n }\n\n public int MyProperty { get; set; }\n}\n[Serializable]\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u6d4b\u8bd5\u4ee3\u7801")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"},' Student student = new Student();\nstudent.P1 = 10;\nstudent.P2 = "\u82e5\u6c5d\u68cb\u8317";\nstudent.P3 = 100;\nstudent.P4 = 0;\nstudent.P5 = DateTime.Now;\nstudent.P6 = 10;\nstudent.P7 = new byte[1024 * 64];\n\nRandom random = new Random();\nrandom.NextBytes(student.P7);\n\nstudent.List1 = new List<int>();\nstudent.List1.Add(1);\nstudent.List1.Add(2);\nstudent.List1.Add(3);\n\nstudent.List2 = new List<string>();\nstudent.List2.Add("1");\nstudent.List2.Add("2");\nstudent.List2.Add("3");\n\nstudent.List3 = new List<byte[]>();\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\n\nstudent.Dic1 = new Dictionary<int, int>();\nstudent.Dic1.Add(1, 1);\nstudent.Dic1.Add(2, 2);\nstudent.Dic1.Add(3, 3);\n\nstudent.Dic2 = new Dictionary<int, string>();\nstudent.Dic2.Add(1, "1");\nstudent.Dic2.Add(2, "2");\nstudent.Dic2.Add(3, "3");\n\nstudent.Dic3 = new Dictionary<string, string>();\nstudent.Dic3.Add("1", "1");\nstudent.Dic3.Add("2", "2");\nstudent.Dic3.Add("3", "3");\n\nstudent.Dic4 = new Dictionary<int, Arg>();\nstudent.Dic4.Add(1, new Arg(1));\nstudent.Dic4.Add(2, new Arg(2));\nstudent.Dic4.Add(3, new Arg(3));\n\nBytePool bytePool = new BytePool(1024 * 1024 * 10, 102400);\n\nTimeSpan timeSpan1 = TimeMeasurer.Run(() =>\n{\n for (int i = 0; i < 100000; i++)\n {\n ByteBlock byteBlock = bytePool.GetByteBlock(1024 * 100);\n SerializeConvert.RRQMBinarySerialize(byteBlock, student,true);\n Student student1 = SerializeConvert.RRQMBinaryDeserialize<Student>(byteBlock.Buffer,\n byteBlock.Dispose();\n if (i % 1000 == 0)\n {\n Console.WriteLine(i);\n }\n }\n});\n\nTimeSpan timeSpan2 = TimeMeasurer.Run(() =>\n{\n for (int i = 0; i < 100000; i++)\n {\n ByteBlock byteBlock = bytePool.GetByteBlock(1024 * 100);\n SerializeConvert.BinarySerialize(byteBlock, student);\n byteBlock.Position = 0;\n Student student1 = SerializeConvert.BinaryDeserialize<Student>(byteBlock);\n byteBlock.Dispose();\n if (i % 1000 == 0)\n {\n Console.WriteLine(i);\n }\n }\n});\n\nConsole.WriteLine($"RRQM:{timeSpan1}");\nConsole.WriteLine($"System:{timeSpan2}");\n')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u6d4b\u8bd5\u7ed3\u679c")),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://img-blog.csdnimg.cn/img_convert/787c262d6b61cdba0d8ee2f5a4239d8f.png#crop=0&crop=0&crop=1&crop=1&id=UIsJi&originHeight=1569&originWidth=2376&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=",alt:null})))}p.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8701],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>b});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(n),b=i,m=u["".concat(l,".").concat(b)]||u[b]||p[b]||a;return n?r.createElement(m,o(o({ref:t},d),{},{components:n})):r.createElement(m,o({ref:t},d))}));function b(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:i,o[1]=s;for(var c=2;c<a;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},5528:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(7462),i=(n(7294),n(3905));const a={id:"fastbinaryformatter",sidebar_position:7,title:"\u9ad8\u6027\u80fd\u5e8f\u5217\u5316",sidebar_label:"4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316"},o=void 0,s={unversionedId:"04\u3001Core/fastbinaryformatter",id:"04\u3001Core/fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/fastbinaryformatter",permalink:"/touchsocket/docs/04\u3001Core/fastbinaryformatter",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:7,frontMatter:{id:"fastbinaryformatter",sidebar_position:7,title:"\u9ad8\u6027\u80fd\u5e8f\u5217\u5316",sidebar_label:"4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316"},sidebar:"tutorialSidebar",previous:{title:"4.6 \u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/04\u3001Core/appmessenger"},next:{title:"4.8 Json\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/04\u3001Core/jsonserialize"}},l={},c=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u5e8f\u5217\u5316",id:"\u4e8c\u5e8f\u5217\u5316",level:2},{value:"\u4e09\u3001\u53cd\u5e8f\u5217\u5316",id:"\u4e09\u53cd\u5e8f\u5217\u5316",level:2},{value:"\u56db\u3001\u5feb\u6377\u5e8f\u5217\u5316",id:"\u56db\u5feb\u6377\u5e8f\u5217\u5316",level:2},{value:"image.png",id:"imagepng",level:2},{value:"\u4e94\u3001\u6027\u80fd\u5bf9\u6bd4",id:"\u4e94\u6027\u80fd\u5bf9\u6bd4",level:2}],d={toc:c};function p(e){let{components:t,...n}=e;return(0,i.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,i.kt)("p",null,"\u8be5\u5e8f\u5217\u5316\u4ee5\u4e8c\u8fdb\u5236\u65b9\u5f0f\u8fdb\u884c\u5e8f\u5217\u5316\uff0c\u4e0d\u8981\u6c42\u7c7b\u578b\u76f8\u540c\uff0c\u4ec5\u4e3a",(0,i.kt)("a",{parentName:"p",href:"https://www.yuque.com/eo2w71/rrqm/d104f4159d543b4ae28db195ef623cf7#Y0Cko"},"\u76f8\u4f3c\u7ed3\u6784"),"\u5373\u53ef\u3002\u652f\u6301",(0,i.kt)("strong",{parentName:"p"},"\u57fa\u7840\u7c7b\u578b"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u81ea\u5b9a\u4e49\u5b9e\u4f53\u7c7b"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u7ed3\u6784\u4f53"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u6570\u636e"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"\u5b57\u5178"),"\u3001",(0,i.kt)("strong",{parentName:"p"},"List"),"\u3001\u4ee5\u53ca\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u3002\n",(0,i.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/RRQMCore/"})),(0,i.kt)("h2",{id:"\u4e8c\u5e8f\u5217\u5316"},"\u4e8c\u3001\u5e8f\u5217\u5316"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"}," public static void FastBinarySerialize(ByteBlock stream, object obj)\n {\n FastBinaryFormatter bf = new FastBinaryFormatter();\n bf.Serialize(stream, obj);\n }\n")),(0,i.kt)("h2",{id:"\u4e09\u53cd\u5e8f\u5217\u5316"},"\u4e09\u3001\u53cd\u5e8f\u5217\u5316"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"},"public object RRQMBinaryDeserialize(byte[] data, int offset, Type type)\n{\n FastBinaryFormatter bf = new FastBinaryFormatter();\n return bf.Deserialize(data, offset, type);\n}\n")),(0,i.kt)("h2",{id:"\u56db\u5feb\u6377\u5e8f\u5217\u5316"},"\u56db\u3001\u5feb\u6377\u5e8f\u5217\u5316"),(0,i.kt)("p",null,"\u5728\u9759\u6001\u7c7b",(0,i.kt)("inlineCode",{parentName:"p"},"SerializeConvert"),"\u4e2d\uff0c\u63d0\u4f9b\u4e86\u5feb\u6377\u7684\u5e8f\u5217\u5316\u65b9\u5f0f\uff0c\u4ee5\u4f9b\u65b9\u4fbf\u4f7f\u7528\u3002"),(0,i.kt)("h2",{id:"imagepng"},(0,i.kt)("img",{parentName:"h2",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1663812694768-3b2d4cb6-c589-4479-9f9b-222a9ab65991.png#clientId=u051b4acd-2df2-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=326&id=ud292820e&name=image.png&originHeight=326&originWidth=1152&originalType=binary&ratio=1&rotation=0&showTitle=false&size=345481&status=done&style=none&taskId=u77352d5a-8e74-4dd0-ac51-49017d791ed&title=&width=1152",alt:"image.png"})),(0,i.kt)("h2",{id:""}),(0,i.kt)("h2",{id:"\u4e94\u6027\u80fd\u5bf9\u6bd4"},"\u4e94\u3001\u6027\u80fd\u5bf9\u6bd4"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u5f85\u6d4b\u8bd5\u7c7b")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"},' [Serializable]\npublic class Student\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n\n public List<int> List1 { get; set; }\n public List<string> List2 { get; set; }\n public List<byte[]> List3 { get; set; }\n\n public Dictionary<int, int> Dic1 { get; set; }\n public Dictionary<int, string> Dic2 { get; set; }\n public Dictionary<string, string> Dic3 { get; set; }\n public Dictionary<int, Arg> Dic4 { get; set; }\n}\n[Serializable]\npublic class Arg\n{\n public Arg(int myProperty)\n {\n this.MyProperty = myProperty;\n }\n\n public Arg()\n {\n Person person = new Person();\n person.Name = "\u5f20\u4e09";\n person.Age = 18;\n }\n\n public int MyProperty { get; set; }\n}\n[Serializable]\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u6d4b\u8bd5\u4ee3\u7801")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-csharp"},' Student student = new Student();\nstudent.P1 = 10;\nstudent.P2 = "\u82e5\u6c5d\u68cb\u8317";\nstudent.P3 = 100;\nstudent.P4 = 0;\nstudent.P5 = DateTime.Now;\nstudent.P6 = 10;\nstudent.P7 = new byte[1024 * 64];\n\nRandom random = new Random();\nrandom.NextBytes(student.P7);\n\nstudent.List1 = new List<int>();\nstudent.List1.Add(1);\nstudent.List1.Add(2);\nstudent.List1.Add(3);\n\nstudent.List2 = new List<string>();\nstudent.List2.Add("1");\nstudent.List2.Add("2");\nstudent.List2.Add("3");\n\nstudent.List3 = new List<byte[]>();\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\n\nstudent.Dic1 = new Dictionary<int, int>();\nstudent.Dic1.Add(1, 1);\nstudent.Dic1.Add(2, 2);\nstudent.Dic1.Add(3, 3);\n\nstudent.Dic2 = new Dictionary<int, string>();\nstudent.Dic2.Add(1, "1");\nstudent.Dic2.Add(2, "2");\nstudent.Dic2.Add(3, "3");\n\nstudent.Dic3 = new Dictionary<string, string>();\nstudent.Dic3.Add("1", "1");\nstudent.Dic3.Add("2", "2");\nstudent.Dic3.Add("3", "3");\n\nstudent.Dic4 = new Dictionary<int, Arg>();\nstudent.Dic4.Add(1, new Arg(1));\nstudent.Dic4.Add(2, new Arg(2));\nstudent.Dic4.Add(3, new Arg(3));\n\nBytePool bytePool = new BytePool(1024 * 1024 * 10, 102400);\n\nTimeSpan timeSpan1 = TimeMeasurer.Run(() =>\n{\n for (int i = 0; i < 100000; i++)\n {\n ByteBlock byteBlock = bytePool.GetByteBlock(1024 * 100);\n SerializeConvert.RRQMBinarySerialize(byteBlock, student,true);\n Student student1 = SerializeConvert.RRQMBinaryDeserialize<Student>(byteBlock.Buffer,\n byteBlock.Dispose();\n if (i % 1000 == 0)\n {\n Console.WriteLine(i);\n }\n }\n});\n\nTimeSpan timeSpan2 = TimeMeasurer.Run(() =>\n{\n for (int i = 0; i < 100000; i++)\n {\n ByteBlock byteBlock = bytePool.GetByteBlock(1024 * 100);\n SerializeConvert.BinarySerialize(byteBlock, student);\n byteBlock.Position = 0;\n Student student1 = SerializeConvert.BinaryDeserialize<Student>(byteBlock);\n byteBlock.Dispose();\n if (i % 1000 == 0)\n {\n Console.WriteLine(i);\n }\n }\n});\n\nConsole.WriteLine($"RRQM:{timeSpan1}");\nConsole.WriteLine($"System:{timeSpan2}");\n')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u6d4b\u8bd5\u7ed3\u679c")),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://img-blog.csdnimg.cn/img_convert/787c262d6b61cdba0d8ee2f5a4239d8f.png#crop=0&crop=0&crop=1&crop=1&id=UIsJi&originHeight=1569&originWidth=2376&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=",alt:null})))}p.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1493],{3905:(e,t,r)=>{r.d(t,{Zo:()=>f,kt:()=>s});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},f=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,f=c(e,["components","mdxType","originalType","parentName"]),p=d(r),s=o,m=p["".concat(l,".").concat(s)]||p[s]||u[s]||a;return r?n.createElement(m,i(i({ref:t},f),{},{components:r})):n.createElement(m,i({ref:t},f))}));function s(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}p.displayName="MDXCreateElement"},24:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7462),o=(r(7294),r(3905));const a={id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",sidebar_label:"f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},i=void 0,c={unversionedId:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",id:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee.mdx",sourceDirName:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee",slug:"/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",frontMatter:{id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",sidebar_label:"f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},sidebar:"tutorialSidebar",previous:{title:"e.\u6570\u636e\u8f6c\u53d1\u9879\u76ee",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/dataforwarding"},next:{title:"a.\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.4 \u4f7f\u7528\u8005\u9879\u76ee/engineertoolbox"}},l={},d=[{value:"\u5b9a\u5236\u65b9",id:"\u5b9a\u5236\u65b9",level:2},{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u6280\u672f\u70b9",id:"\u6280\u672f\u70b9",level:2},{value:"\u6548\u679c",id:"\u6548\u679c",level:2}],f={toc:d};function u(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb\u201c\u8f6f\u4ef6\u5f00\u53d1\u201d"),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u9700\u8981\u5b9e\u73b0Web\u7aef\u6570\u636e\u5411Winform\u7aef\u8f6c\u53d1\u7684\u529f\u80fd\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u7f51\u7edc\u7f16\u7a0b")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/gif/25438888/1650179926962-b66003e7-77a6-421d-9a86-6c630ea5d15b.gif#clientId=uc6582c03-139f-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=829&id=u48de43a1&margin=%5Bobject%20Object%5D&name=6.gif&originHeight=1658&originWidth=2776&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1413068&status=done&style=none&taskId=u32b547ef-f617-444f-b90d-cfe11cc8117&title=&width=1388",alt:"6.gif"})))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[493],{3905:(e,t,r)=>{r.d(t,{Zo:()=>f,kt:()=>s});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},f=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,f=c(e,["components","mdxType","originalType","parentName"]),p=u(r),s=o,b=p["".concat(l,".").concat(s)]||p[s]||d[s]||a;return r?n.createElement(b,i(i({ref:t},f),{},{components:r})):n.createElement(b,i({ref:t},f))}));function s(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var u=2;u<a;u++)i[u]=r[u];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}p.displayName="MDXCreateElement"},24:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(7462),o=(r(7294),r(3905));const a={id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",sidebar_label:"f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},i=void 0,c={unversionedId:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",id:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee.mdx",sourceDirName:"03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee",slug:"/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/webdataforwarding",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee.mdx",tags:[],version:"current",frontMatter:{id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",sidebar_label:"f.Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},sidebar:"tutorialSidebar",previous:{title:"e.\u6570\u636e\u8f6c\u53d1\u9879\u76ee",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.3 \u5546\u4e1a\u9879\u76ee/dataforwarding"},next:{title:"a.\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1",permalink:"/touchsocket/docs/03\u3001\u652f\u6301\u4f5c\u8005\u53ca\u5546\u4e1a\u8fd0\u8425/3.4 \u4f7f\u7528\u8005\u9879\u76ee/engineertoolbox"}},l={},u=[{value:"\u5b9a\u5236\u65b9",id:"\u5b9a\u5236\u65b9",level:2},{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u6280\u672f\u70b9",id:"\u6280\u672f\u70b9",level:2},{value:"\u6548\u679c",id:"\u6548\u679c",level:2}],f={toc:u};function d(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb\u201c\u8f6f\u4ef6\u5f00\u53d1\u201d"),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u9700\u8981\u5b9e\u73b0Web\u7aef\u6570\u636e\u5411Winform\u7aef\u8f6c\u53d1\u7684\u529f\u80fd\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u7f51\u7edc\u7f16\u7a0b")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/gif/25438888/1650179926962-b66003e7-77a6-421d-9a86-6c630ea5d15b.gif#clientId=uc6582c03-139f-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=829&id=u48de43a1&margin=%5Bobject%20Object%5D&name=6.gif&originHeight=1658&originWidth=2776&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1413068&status=done&style=none&taskId=u32b547ef-f617-444f-b90d-cfe11cc8117&title=&width=1388",alt:"6.gif"})))}d.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7558],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},c=Object.keys(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var a=o.createContext({}),l=function(e){var t=o.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(a.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,c=e.originalType,a=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(n),b=r,u=m["".concat(a,".").concat(b)]||m[b]||d[b]||c;return n?o.createElement(u,i(i({ref:t},p),{},{components:n})):o.createElement(u,i({ref:t},p))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=n.length,i=new Array(c);i[0]=m;var s={};for(var a in t)hasOwnProperty.call(t,a)&&(s[a]=t[a]);s.originalType=e,s.mdxType="string"==typeof e?e:r,i[1]=s;for(var l=2;l<c;l++)i[l]=n[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},6911:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>s,toc:()=>l});var o=n(7462),r=(n(7294),n(3905));const c={id:"jsonserialize",sidebar_position:8,title:"Json\u5e8f\u5217\u5316",sidebar_label:"4.8 Json\u5e8f\u5217\u5316"},i=void 0,s={unversionedId:"04\u3001Core/jsonserialize",id:"04\u3001Core/jsonserialize",title:"Json\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.8 Json\u5e8f\u5217\u5316.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/jsonserialize",permalink:"/touchsocket/docs/04\u3001Core/jsonserialize",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.8 Json\u5e8f\u5217\u5316.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:8,frontMatter:{id:"jsonserialize",sidebar_position:8,title:"Json\u5e8f\u5217\u5316",sidebar_label:"4.8 Json\u5e8f\u5217\u5316"},sidebar:"tutorialSidebar",previous:{title:"4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/04\u3001Core/fastbinaryformatter"},next:{title:"4.9 \u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668",permalink:"/touchsocket/docs/04\u3001Core/ioc"}},a={},l=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565",id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565",level:2},{value:"\u4e09\u3001JsonFast\u6027\u80fd",id:"\u4e09jsonfast\u6027\u80fd",level:2}],p={toc:l};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"\u5728TouchSocket\u4e2d\uff0c\u5185\u7f6e\u4e86Json\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"string jsonstr=SerializeConvert.ToJson(new object());//\u5e8f\u5217\u5316\nobject obj=SerializeConvert.FromJson<object>(jsonstr);//\u53cd\u5e8f\u5217\u5316\n")),(0,r.kt)("h2",{id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565"},"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565"),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff1a\n\u5728net45\u548cnetstandard2.0\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u662f\u7531",(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/majorworld/jsonfast"},"JsonFast\uff08\u7fa4\u53cb\u8001\u6c5f\uff09"),"\u63d0\u4f9b\u7684\u5355\u6587\u4ef6json\u5e8f\u5217\u5316\u3002\u8be5json\u5de5\u5177\u80fd\u591f\u5e8f\u5217\u5316\u5927\u591a\u6570\u6570\u636e\u7ed3\u6784\uff0c\u4e14\u6027\u80fd\u548cNewtonsoft.Json\u4e0d\u76f8\u4e0a\u4e0b\uff08\u89c1\u4e0b\u6d4b\u8bd5\uff09\u3002\n\u5728netcoreapp3.1\u53ca\u4ee5\u4e0a\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u4f7f\u7528System.Text.Json\u3002"),(0,r.kt)("p",null,"\u4f46\u662f\n\u5f53\u5e94\u7528\u4e2d\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\u540e\uff0c\u6240\u6709\u7684\u5e73\u53f0\u7684\u5e8f\u5217\u5316\uff0c\u5747\u4f1a\u4f7f\u7528Newtonsoft.Json\u3002\u53ef\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonIsSupported**"),"\u9759\u6001\u5c5e\u6027\u83b7\u53d6\u5f53\u524d\u662f\u5426\u652f\u6301Newtonsoft.Json\u3002"),(0,r.kt)("p",null,"\u4e5f\u53ef\u4ee5\u624b\u52a8\u52a0\u8f7dNewtonsoft.Json\uff08\u4e00\u822c\u5728",(0,r.kt)("strong",{parentName:"p"},"Unity3d"),"\u4e2d\u9700\u8981\u624b\u52a8\u52a0\u8f7d\uff09\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"bool IsSupported=SerializeConvert.LoadNewtonsoftJson(typeof(JsonConvert));//\u8fd4\u56de\u503c\u6307\u793a\u662f\u5426\u6210\u529f\u52a0\u8f7d\n")),(0,r.kt)("p",null,"\u5f53\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\uff0c\u4f46\u662f\u4e0d\u60f3\u4f7f\u7528\u8be5\u5de5\u5177\u5e8f\u5217\u5316\u65f6\uff0c\u53ef\u5c06",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonFirst**"),"\u9759\u6001\u5c5e\u6027\u8bbe\u4e3afalse\u3002"),(0,r.kt)("h2",{id:"\u4e09jsonfast\u6027\u80fd"},"\u4e09\u3001JsonFast\u6027\u80fd"),(0,r.kt)("p",null,"\u3010\u7b80\u5355\u6570\u636e\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class SimpleObject \n{\n public int Age { get; set; }\n public string Name { get; set; }\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'[Benchmark]\npublic void JsonFast_SimpleObject()\n{\n var v = new SimpleObject { Age = 40, Name = "John" };\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom<SimpleObject>(str);\n }\n}\n')),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a1w\u6b21\u7684\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002JsonFast\u7684\u6548\u7387\u751a\u81f3\u8fd8\u7a0d\u9ad8\u4e00\u4e9b\u3002\n",(0,r.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1671242653799-0876c5d7-bbe2-487b-a592-db306e8dca47.png#averageHue=%230c0c0c&clientId=u52c6290f-001c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=275&id=u7e64d500&margin=%5Bobject%20Object%5D&name=image.png&originHeight=550&originWidth=3595&originalType=binary&ratio=1&rotation=0&showTitle=false&size=134083&status=done&style=none&taskId=u19083893-adb6-488f-b8e4-3ca9c88035a&title=&width=1797.5",alt:"image.png"})),(0,r.kt)("p",null,"\u3010\u590d\u6742\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class ComplexObject\n{\n public Dictionary<int, int> Dic1 { get; set; }\n public Dictionary<int, string> Dic2 { get; set; }\n public Dictionary<string, string> Dic3 { get; set; }\n public Dictionary<int, Arg> Dic4 { get; set; }\n public List<int> List1 { get; set; }\n public List<string> List2 { get; set; }\n public List<byte[]> List3 { get; set; }\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n}\n\npublic class Arg\n{\n public Arg()\n {\n }\n\n public Arg(int myProperty)\n {\n MyProperty = myProperty;\n }\n\n public int MyProperty { get; set; }\n}\n")),(0,r.kt)("p",null,"\u521d\u59cb\u5316"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'private ComplexObject GetComplexObject()\n{\n ComplexObject complexObject = new ComplexObject();\n complexObject.P1 = 10;\n complexObject.P2 = "\u5929\u4e0b\u65e0\u654c";\n complexObject.P3 = 100;\n complexObject.P4 = 0;\n complexObject.P5 = DateTime.Now;\n complexObject.P6 = 10;\n complexObject.P7 = new byte[1024 * 64];\n\n Random random = new Random();\n random.NextBytes(complexObject.P7);\n\n complexObject.List1 = new List<int>();\n complexObject.List1.Add(1);\n complexObject.List1.Add(2);\n complexObject.List1.Add(3);\n\n complexObject.List2 = new List<string>();\n complexObject.List2.Add("1");\n complexObject.List2.Add("2");\n complexObject.List2.Add("3");\n\n complexObject.List3 = new List<byte[]>();\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n\n complexObject.Dic1 = new Dictionary<int, int>();\n complexObject.Dic1.Add(1, 1);\n complexObject.Dic1.Add(2, 2);\n complexObject.Dic1.Add(3, 3);\n\n complexObject.Dic2 = new Dictionary<int, string>();\n complexObject.Dic2.Add(1, "1");\n complexObject.Dic2.Add(2, "2");\n complexObject.Dic2.Add(3, "3");\n\n complexObject.Dic3 = new Dictionary<string, string>();\n complexObject.Dic3.Add("1", "1");\n complexObject.Dic3.Add("2", "2");\n complexObject.Dic3.Add("3", "3");\n\n complexObject.Dic4 = new Dictionary<int, Arg>();\n complexObject.Dic4.Add(1, new Arg(1));\n complexObject.Dic4.Add(2, new Arg(2));\n complexObject.Dic4.Add(3, new Arg(3));\n return complexObject;\n}\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"[Benchmark]\npublic void JsonFast_ComplexObject()\n{\n var v = GetComplexObject();\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom<ComplexObject>(str);\n }\n}\n")),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a100\u6b21\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\uff0cJsonFast\u6027\u80fd\u7a0d\u5f31\uff0c\u4f46\u662f\u57fa\u672c\u6ee1\u8db3\u8981\u6c42\u3002\n",(0,r.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1671243018168-00ed551d-e020-40fb-8d2c-7f589b8ff804.png#averageHue=%230c0c0c&clientId=u52c6290f-001c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=282&id=u73bf1323&margin=%5Bobject%20Object%5D&name=image.png&originHeight=563&originWidth=3788&originalType=binary&ratio=1&rotation=0&showTitle=false&size=138062&status=done&style=none&taskId=udb047edf-d05d-48df-954b-a04c7bc556d&title=&width=1894",alt:"image.png"})))}d.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[558],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},c=Object.keys(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var a=o.createContext({}),l=function(e){var t=o.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(a.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,c=e.originalType,a=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=r,u=d["".concat(a,".").concat(m)]||d[m]||b[m]||c;return n?o.createElement(u,i(i({ref:t},p),{},{components:n})):o.createElement(u,i({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=n.length,i=new Array(c);i[0]=d;var s={};for(var a in t)hasOwnProperty.call(t,a)&&(s[a]=t[a]);s.originalType=e,s.mdxType="string"==typeof e?e:r,i[1]=s;for(var l=2;l<c;l++)i[l]=n[l];return o.createElement.apply(null,i)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},6911:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>b,frontMatter:()=>c,metadata:()=>s,toc:()=>l});var o=n(7462),r=(n(7294),n(3905));const c={id:"jsonserialize",sidebar_position:8,title:"Json\u5e8f\u5217\u5316",sidebar_label:"4.8 Json\u5e8f\u5217\u5316"},i=void 0,s={unversionedId:"04\u3001Core/jsonserialize",id:"04\u3001Core/jsonserialize",title:"Json\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.8 Json\u5e8f\u5217\u5316.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/jsonserialize",permalink:"/touchsocket/docs/04\u3001Core/jsonserialize",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.8 Json\u5e8f\u5217\u5316.mdx",tags:[],version:"current",sidebarPosition:8,frontMatter:{id:"jsonserialize",sidebar_position:8,title:"Json\u5e8f\u5217\u5316",sidebar_label:"4.8 Json\u5e8f\u5217\u5316"},sidebar:"tutorialSidebar",previous:{title:"4.7 \u9ad8\u6027\u80fd\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/04\u3001Core/fastbinaryformatter"},next:{title:"4.9 \u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668",permalink:"/touchsocket/docs/04\u3001Core/ioc"}},a={},l=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565",id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565",level:2},{value:"\u4e09\u3001JsonFast\u6027\u80fd",id:"\u4e09jsonfast\u6027\u80fd",level:2}],p={toc:l};function b(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"\u5728TouchSocket\u4e2d\uff0c\u5185\u7f6e\u4e86Json\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"string jsonstr=SerializeConvert.ToJson(new object());//\u5e8f\u5217\u5316\nobject obj=SerializeConvert.FromJson<object>(jsonstr);//\u53cd\u5e8f\u5217\u5316\n")),(0,r.kt)("h2",{id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565"},"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565"),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff1a\n\u5728net45\u548cnetstandard2.0\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u662f\u7531",(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/majorworld/jsonfast"},"JsonFast\uff08\u7fa4\u53cb\u8001\u6c5f\uff09"),"\u63d0\u4f9b\u7684\u5355\u6587\u4ef6json\u5e8f\u5217\u5316\u3002\u8be5json\u5de5\u5177\u80fd\u591f\u5e8f\u5217\u5316\u5927\u591a\u6570\u6570\u636e\u7ed3\u6784\uff0c\u4e14\u6027\u80fd\u548cNewtonsoft.Json\u4e0d\u76f8\u4e0a\u4e0b\uff08\u89c1\u4e0b\u6d4b\u8bd5\uff09\u3002\n\u5728netcoreapp3.1\u53ca\u4ee5\u4e0a\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u4f7f\u7528System.Text.Json\u3002"),(0,r.kt)("p",null,"\u4f46\u662f\n\u5f53\u5e94\u7528\u4e2d\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\u540e\uff0c\u6240\u6709\u7684\u5e73\u53f0\u7684\u5e8f\u5217\u5316\uff0c\u5747\u4f1a\u4f7f\u7528Newtonsoft.Json\u3002\u53ef\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonIsSupported**"),"\u9759\u6001\u5c5e\u6027\u83b7\u53d6\u5f53\u524d\u662f\u5426\u652f\u6301Newtonsoft.Json\u3002"),(0,r.kt)("p",null,"\u4e5f\u53ef\u4ee5\u624b\u52a8\u52a0\u8f7dNewtonsoft.Json\uff08\u4e00\u822c\u5728",(0,r.kt)("strong",{parentName:"p"},"Unity3d"),"\u4e2d\u9700\u8981\u624b\u52a8\u52a0\u8f7d\uff09\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"bool IsSupported=SerializeConvert.LoadNewtonsoftJson(typeof(JsonConvert));//\u8fd4\u56de\u503c\u6307\u793a\u662f\u5426\u6210\u529f\u52a0\u8f7d\n")),(0,r.kt)("p",null,"\u5f53\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\uff0c\u4f46\u662f\u4e0d\u60f3\u4f7f\u7528\u8be5\u5de5\u5177\u5e8f\u5217\u5316\u65f6\uff0c\u53ef\u5c06",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonFirst**"),"\u9759\u6001\u5c5e\u6027\u8bbe\u4e3afalse\u3002"),(0,r.kt)("h2",{id:"\u4e09jsonfast\u6027\u80fd"},"\u4e09\u3001JsonFast\u6027\u80fd"),(0,r.kt)("p",null,"\u3010\u7b80\u5355\u6570\u636e\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class SimpleObject \n{\n public int Age { get; set; }\n public string Name { get; set; }\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'[Benchmark]\npublic void JsonFast_SimpleObject()\n{\n var v = new SimpleObject { Age = 40, Name = "John" };\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom<SimpleObject>(str);\n }\n}\n')),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a1w\u6b21\u7684\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002JsonFast\u7684\u6548\u7387\u751a\u81f3\u8fd8\u7a0d\u9ad8\u4e00\u4e9b\u3002\n",(0,r.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1671242653799-0876c5d7-bbe2-487b-a592-db306e8dca47.png#averageHue=%230c0c0c&clientId=u52c6290f-001c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=275&id=u7e64d500&margin=%5Bobject%20Object%5D&name=image.png&originHeight=550&originWidth=3595&originalType=binary&ratio=1&rotation=0&showTitle=false&size=134083&status=done&style=none&taskId=u19083893-adb6-488f-b8e4-3ca9c88035a&title=&width=1797.5",alt:"image.png"})),(0,r.kt)("p",null,"\u3010\u590d\u6742\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class ComplexObject\n{\n public Dictionary<int, int> Dic1 { get; set; }\n public Dictionary<int, string> Dic2 { get; set; }\n public Dictionary<string, string> Dic3 { get; set; }\n public Dictionary<int, Arg> Dic4 { get; set; }\n public List<int> List1 { get; set; }\n public List<string> List2 { get; set; }\n public List<byte[]> List3 { get; set; }\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n}\n\npublic class Arg\n{\n public Arg()\n {\n }\n\n public Arg(int myProperty)\n {\n MyProperty = myProperty;\n }\n\n public int MyProperty { get; set; }\n}\n")),(0,r.kt)("p",null,"\u521d\u59cb\u5316"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'private ComplexObject GetComplexObject()\n{\n ComplexObject complexObject = new ComplexObject();\n complexObject.P1 = 10;\n complexObject.P2 = "\u5929\u4e0b\u65e0\u654c";\n complexObject.P3 = 100;\n complexObject.P4 = 0;\n complexObject.P5 = DateTime.Now;\n complexObject.P6 = 10;\n complexObject.P7 = new byte[1024 * 64];\n\n Random random = new Random();\n random.NextBytes(complexObject.P7);\n\n complexObject.List1 = new List<int>();\n complexObject.List1.Add(1);\n complexObject.List1.Add(2);\n complexObject.List1.Add(3);\n\n complexObject.List2 = new List<string>();\n complexObject.List2.Add("1");\n complexObject.List2.Add("2");\n complexObject.List2.Add("3");\n\n complexObject.List3 = new List<byte[]>();\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n\n complexObject.Dic1 = new Dictionary<int, int>();\n complexObject.Dic1.Add(1, 1);\n complexObject.Dic1.Add(2, 2);\n complexObject.Dic1.Add(3, 3);\n\n complexObject.Dic2 = new Dictionary<int, string>();\n complexObject.Dic2.Add(1, "1");\n complexObject.Dic2.Add(2, "2");\n complexObject.Dic2.Add(3, "3");\n\n complexObject.Dic3 = new Dictionary<string, string>();\n complexObject.Dic3.Add("1", "1");\n complexObject.Dic3.Add("2", "2");\n complexObject.Dic3.Add("3", "3");\n\n complexObject.Dic4 = new Dictionary<int, Arg>();\n complexObject.Dic4.Add(1, new Arg(1));\n complexObject.Dic4.Add(2, new Arg(2));\n complexObject.Dic4.Add(3, new Arg(3));\n return complexObject;\n}\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"[Benchmark]\npublic void JsonFast_ComplexObject()\n{\n var v = GetComplexObject();\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom<ComplexObject>(str);\n }\n}\n")),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a100\u6b21\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\uff0cJsonFast\u6027\u80fd\u7a0d\u5f31\uff0c\u4f46\u662f\u57fa\u672c\u6ee1\u8db3\u8981\u6c42\u3002\n",(0,r.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/25438888/1671243018168-00ed551d-e020-40fb-8d2c-7f589b8ff804.png#averageHue=%230c0c0c&clientId=u52c6290f-001c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=282&id=u73bf1323&margin=%5Bobject%20Object%5D&name=image.png&originHeight=563&originWidth=3788&originalType=binary&ratio=1&rotation=0&showTitle=false&size=138062&status=done&style=none&taskId=udb047edf-d05d-48df-954b-a04c7bc556d&title=&width=1894",alt:"image.png"})))}b.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[3106],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),d=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(p.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=d(n),m=a,f=u["".concat(p,".").concat(m)]||u[m]||l[m]||o;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var d=2;d<o;d++)i[d]=n[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},9351:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={id:"usebroadcast",sidebar_position:4,title:"\u7ec4\u64ad\u3001\u5e7f\u64ad",sidebar_label:"7.4 \u7ec4\u64ad\u3001\u5e7f\u64ad"},i=void 0,s={unversionedId:"07\u3001Udp\u7ec4\u4ef6/usebroadcast",id:"07\u3001Udp\u7ec4\u4ef6/usebroadcast",title:"\u7ec4\u64ad\u3001\u5e7f\u64ad",description:"\u8bf4\u660e",source:"@site/docs/07\u3001Udp\u7ec4\u4ef6/7.4 \u7ec4\u64ad\u3001\u5e7f\u64ad.mdx",sourceDirName:"07\u3001Udp\u7ec4\u4ef6",slug:"/07\u3001Udp\u7ec4\u4ef6/usebroadcast",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/usebroadcast",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/07\u3001Udp\u7ec4\u4ef6/7.4 \u7ec4\u64ad\u3001\u5e7f\u64ad.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{id:"usebroadcast",sidebar_position:4,title:"\u7ec4\u64ad\u3001\u5e7f\u64ad",sidebar_label:"7.4 \u7ec4\u64ad\u3001\u5e7f\u64ad"},sidebar:"tutorialSidebar",previous:{title:"7.3 \u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/transmitbigdata"},next:{title:"8.1 \u4ecb\u7ecd\u53ca\u4f7f\u7528",permalink:"/touchsocket/docs/08\u3001\u6570\u636e\u5904\u7406\u9002\u914d\u5668/adapterdescription"}},p={},d=[{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u7ec4\u64ad\u4f7f\u7528",id:"\u7ec4\u64ad\u4f7f\u7528",level:2},{value:"\u5e7f\u64ad",id:"\u5e7f\u64ad",level:2}],c={toc:d};function l(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,a.kt)("p",null,"UDP\u7ec4\u64ad\u3002"),(0,a.kt)("h2",{id:"\u7ec4\u64ad\u4f7f\u7528"},"\u7ec4\u64ad\u4f7f\u7528"),(0,a.kt)("p",null,"\u7ec4\u64ad\u4f7f\u7528\u975e\u5e38\u7b80\u5355\uff0c"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u914d\u7f6e\u4e2d\u542f\u7528\u5e7f\u64ad",(0,a.kt)("strong",{parentName:"li"},"UseBroadcast"),"\u91cd\u8981"),(0,a.kt)("li",{parentName:"ol"},"\u5728UdpSession",(0,a.kt)("strong",{parentName:"li"},"\u542f\u52a8"),"\u540e\u3002\u8c03\u7528",(0,a.kt)("strong",{parentName:"li"},"JoinMulticastGroup"),"\u5373\u53ef\u52a0\u5165\u7ec4\u64ad\u3002\u8c03\u7528",(0,a.kt)("strong",{parentName:"li"},"DropMulticastGroup"),"\uff0c\u9000\u51fa\u7ec4\u64ad\u3002")),(0,a.kt)("p",null,"_\u4e0b\u5217\u793a\u4f8b\u4f7f\u7528\u7684\u662fUdpPackageAdapter\u9002\u914d\u5668\uff0c\u5982\u679c\u662f\u666e\u901audp\u63a5\u53d7\u7aef\uff0c\u8bf7\u4f7f\u7528NormalUdpDataHandlingAdapter\u9002\u914d\u5668\u3002//TODO:\u4e0b\u9762\u7684\u4ee3\u7801\u9700\u8981\u4fee\u6539_RRQMConfig\u4e3aTouchSocketConfig"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'private static void TestUdpMulticastGroup()\n{\n IPEndPoint multicast = new IPEndPoint(IPAddress.Parse("224.5.6.7"), 7788);\n\n UdpSession mainUdpSession = new UdpSession();\n mainUdpSession.SetDataHandlingAdapter(new UdpPackageAdapter());\n //udpSession.SetDataHandlingAdapter(new NormalUdpDataHandlingAdapter());\n\n mainUdpSession.Setup(new RRQMConfig()\n .SetBindIPHost(new IPHost(7789))\n .SetThreadCount(1)\n .UseBroadcast() \n .SetBufferLength(1024 * 64))\n .Start();\n\n mainUdpSession.JoinMulticastGroup(IPAddress.Parse("224.5.6.7"));\n\n\n UdpSession multicastUdpSession = new UdpSession();\n multicastUdpSession.SetDataHandlingAdapter(new UdpPackageAdapter());\n //udpSession.SetDataHandlingAdapter(new NormalUdpDataHandlingAdapter());\n\n int count = 0;\n multicastUdpSession.Received += (remote, byteBlock, requestInfo) =>\n {\n Console.WriteLine(byteBlock.ToString());\n count++;\n if (count==5)\n {\n multicastUdpSession.DropMulticastGroup(IPAddress.Parse("224.5.6.7"));\n }\n };\n\n multicastUdpSession.Setup(new RRQMConfig()\n .SetBindIPHost(new IPHost(7788))\n .SetThreadCount(1)\n .SetBufferLength(1024 * 64))\n .Start();\n\n multicastUdpSession.JoinMulticastGroup(IPAddress.Parse("224.5.6.7"));\n\n while (true)\n {\n mainUdpSession.Send(multicast,Encoding.UTF8.GetBytes("RRQM"));\n Thread.Sleep(1000);\n }\n}\n')),(0,a.kt)("h2",{id:"\u5e7f\u64ad"},"\u5e7f\u64ad"),(0,a.kt)("p",null,"\u5e7f\u64ad\u7684\u4f7f\u7528\u4e5f\u975e\u5e38\u7b80\u5355\uff0c\u4ec5\u4ec5\u9700\u8981\u5c06\u53d1\u9001\u7684",(0,a.kt)("strong",{parentName:"p"},"\u76ee\u7684\u5730\u5740"),"\u8bbe\u7f6e\u4e3a255.255.255.255\u5373\u53ef\u3002\u6b64\u5904\u53ef\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"IPEndPoint"),"\u5b9e\u73b0\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"IPHost"),"\u5b9e\u73b0\u3002"))}l.isMDXComponent=!0}}]);
\ No newline at end of file
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5231],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(n),k=a,m=d["".concat(p,".").concat(k)]||d[k]||s[k]||l;return n?r.createElement(m,o(o({ref:t},c),{},{components:n})):r.createElement(m,o({ref:t},c))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var u=2;u<l;u++)o[u]=n[u];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},1645:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=n(7462),a=(n(7294),n(3905));const l={id:"pluginsmanager",sidebar_position:12,title:"\u63d2\u4ef6\u7cfb\u7edf",sidebar_label:"4.12 \u63d2\u4ef6\u7cfb\u7edf"},o=void 0,i={unversionedId:"04\u3001Core/pluginsmanager",id:"04\u3001Core/pluginsmanager",title:"\u63d2\u4ef6\u7cfb\u7edf",description:"\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.12 \u63d2\u4ef6\u7cfb\u7edf.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/pluginsmanager",permalink:"/touchsocket/docs/04\u3001Core/pluginsmanager",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.12 \u63d2\u4ef6\u7cfb\u7edf.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:12,frontMatter:{id:"pluginsmanager",sidebar_position:12,title:"\u63d2\u4ef6\u7cfb\u7edf",sidebar_label:"4.12 \u63d2\u4ef6\u7cfb\u7edf"},sidebar:"tutorialSidebar",previous:{title:"4.11 \u6587\u4ef6\u6d41\u6c60",permalink:"/touchsocket/docs/04\u3001Core/filepool"},next:{title:"4.13 \u5305\u5e8f\u5217\u5316\u6a21\u5f0f",permalink:"/touchsocket/docs/04\u3001Core/ipackage"}},p={},u=[{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u4ea7\u54c1\u7279\u70b9",id:"\u4ea7\u54c1\u7279\u70b9",level:2},{value:"\u4ea7\u54c1\u5e94\u7528\u573a\u666f",id:"\u4ea7\u54c1\u5e94\u7528\u573a\u666f",level:2},{value:"\u63d2\u4ef6\u7279\u6027",id:"\u63d2\u4ef6\u7279\u6027",level:2},{value:"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6",id:"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6",level:2},{value:"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6",id:"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6",level:2}],c={toc:u};function s(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u63d2\u4ef6\u662f\u5bf9TouchSocket\u4ea7\u54c1\u7684\u6a2a\u5411\u6269\u5c55\u3002")),(0,a.kt)("h2",{id:"\u4ea7\u54c1\u7279\u70b9"},"\u4ea7\u54c1\u7279\u70b9"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7b80\u5355\u6613\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u6613\u6269\u5c55\u3002")),(0,a.kt)("h2",{id:"\u4ea7\u54c1\u5e94\u7528\u573a\u666f"},"\u4ea7\u54c1\u5e94\u7528\u573a\u666f"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"TCP\u57fa\u7840\u4f7f\u7528\u573a\u666f\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u81ea\u5b9a\u4e49\u534f\u8bae\u89e3\u6790\u573a\u666f\u3002")),(0,a.kt)("h2",{id:"\u63d2\u4ef6\u7279\u6027"},"\u63d2\u4ef6\u7279\u6027"),(0,a.kt)("p",null,"\u3010\u591a\u7ebf\u7a0b\u5e76\u53d1\u3011\n\u63d2\u4ef6\u7684\u6240\u6709\u89e6\u53d1\uff0c\u5747\u662f\u540c\u4e00\u5b9e\u4f8b\uff0c\u6240\u4ee5\u5728\u670d\u52a1\u5668\u8fd0\u884c\u65f6\uff0c\u51e0\u4e4e\u90fd\u662f\u5e76\u53d1\u89e6\u53d1\u7684\uff0c\u6240\u6709\u5e94\u5f53\u8003\u8651\u5e76\u53d1\u95ee\u9898\u3002"),(0,a.kt)("p",null,"\u3010\u63d2\u4ef6\u5148\u884c\u3011\n\u5f53\u542f\u7528\u63d2\u4ef6\u65f6\uff0c\u63d2\u4ef6\u7684\u89e6\u53d1",(0,a.kt)("strong",{parentName:"p"},"\u4ec5\u6b21\u4e8e"),"\u65b9\u6cd5\u91cd\u5199\uff0c\u800c",(0,a.kt)("strong",{parentName:"p"},"\u4f18\u4e8e"),"\u4e8b\u4ef6\u3002"),(0,a.kt)("p",null,"\u3010\u6267\u884c\u987a\u5e8f\u3011\n\u6bcf\u4e2a\u63d2\u4ef6\u90fd\u6709\u4e00\u4e2a",(0,a.kt)("strong",{parentName:"p"},"Order"),"\u5c5e\u6027\uff0c\u8be5\u5c5e\u6027\u8868\u793a\u8be5\u63d2\u4ef6\u7684\u6267\u884c\u987a\u5e8f\uff0c\u6570\u503c\u5c0f\uff0c\u8d8a\u63d0\u524d\u6267\u884c\uff08Order\u5728Add\u4e4b\u524d\u751f\u6548\uff0c\u540e\u7eed\u4fee\u6539\u65e0\u6548\uff09\u3002"),(0,a.kt)("p",null,"\u3010\u4e2d\u65ad\u4f20\u9012\u3011\n\u5f53\u67d0\u4e2a\u63d2\u4ef6\u5728\u54cd\u5e94\u65f6\uff0c\u5982\u679c\u8bbe\u7f6ee.Handled=true,\u5219\u8be5\u6570\u636e\u5c06",(0,a.kt)("strong",{parentName:"p"},"\u4e0d\u4f1a"),"\u518d\u89e6\u53d1\u540e\u7eed\u7684\u63d2\u4ef6\u3001\u4e8b\u4ef6\u3001\u91cd\u5199\u65b9\u6cd5\u3002"),(0,a.kt)("h2",{id:"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6"},"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6"),(0,a.kt)("p",null,"\u7528\u6237\u901a\u8fc7\u5b9e\u73b0\u6846\u67b6\u9884\u8bbe\u7684\u63d2\u4ef6\u63a5\u53e3\uff0c\u5373\u53ef\u63a5\u6536\u76f8\u5e94\u7684\u89e6\u53d1\u3002\u6bcf\u4e2a\u7ec4\u4ef6\u90fd\u6709\u8be6\u7ec6\u7684\u63d2\u4ef6\u652f\u6301\u8bf4\u660e\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a",(0,a.kt)("strong",{parentName:"p"},"ITcpPlugin"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"ITokenPlugin"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"IProtocolPlugin"),"\u7b49\u3002"),(0,a.kt)("h2",{id:"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6"},"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6"),(0,a.kt)("p",null,"\u5f53\u5404\u4f4d\u670b\u53cb\u4f7f\u7528TouchSocket\u5c01\u88c5\u81ea\u5df1\u7684dll\u65f6\uff0c\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u5b9a\u4e49\u63d2\u4ef6\u3002\u90a3\u4e48\u8fd9\u4e2a\u9700\u6c42TouchSocket\u4e5f\u80fd\u6ee1\u8db3\u5927\u5bb6\u3002"),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"\u4f8b\u5982\uff1a\u5b9e\u73b0\u57fa\u4e8eTCP\u7684\u7279\u6b8a\u4fe1\u606f\u81ea\u5b9a\u4e49\u63d2\u4ef6\uff0c\u5f53\u6536\u5230\u5b57\u6bcd\u2018A\u2019\u65f6\uff0c\u5e0c\u671b\u89e6\u53d1\u5b9e\u73b0IAPlugin\u63a5\u53e3\u63d2\u4ef6\u7684GoToA\u65b9\u6cd5\u3002")),(0,a.kt)("p",null,"\u5177\u4f53\u64cd\u4f5c\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u58f0\u660eIAPlugin\u63a5\u53e3\uff0c\u7ee7\u627f",(0,a.kt)("strong",{parentName:"li"},"IPlugin"),"\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u58f0\u660eGoToA\u63a5\u53e3\u65b9\u6cd5\uff08\u8be5\u65b9\u6cd5\u5fc5\u987b",(0,a.kt)("strong",{parentName:"li"},"\u4e24\u4e2a"),"\u53c2\u6570\uff0c\u7b2c\u4e00\u53c2\u6570\u65e0\u8981\u6c42\uff0c\u4e00\u822c\u4e3a\u89e6\u53d1\u4e3b\u4f53\uff0c\u7b2c\u4e8c\u53c2\u6570",(0,a.kt)("strong",{parentName:"li"},"\u5fc5\u987b\u7ee7\u627f"),"\u81ea",(0,a.kt)("strong",{parentName:"li"},"RRQMEventArgs//TODO:\u8fd9\u91cc\u5e94\u8be5\u4fee\u6539\u4e3aEventArgs\uff1f\u672a\u627e\u5230TouchSocketEventArgs\u7c7b\u4f3c\uff0c\u8fd8\u6709\u4e0b\u9762\u7684\u4ee3\u7801"),"\uff09\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5728\u5408\u9002\u65f6\u5019\uff0c\u5224\u65ad\u5f53\u524d\u914d\u7f6e\u662f\u5426\u652f\u6301\u63d2\u4ef6\uff0c\u7136\u540e\u4f7f\u7528\u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\u7684",(0,a.kt)("strong",{parentName:"li"},"PluginsManager"),"\u5c5e\u6027\u8c03\u7528",(0,a.kt)("strong",{parentName:"li"},"Raise"),"\u65b9\u6cd5\uff0c\u6b64\u5904\u7684\u6cdb\u578b\uff08",(0,a.kt)("strong",{parentName:"li"},"IAPlugin"),"\uff09\u5fc5\u987b\u4e3a\u63a5\u53e3\u7c7b\u578b\u3002")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public interface IAPlugin : IPlugin\n{\n void GoToA(ITcpClientBase client,RRQMEventArgs e);\n}\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTClient : TcpClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n if (this.UsePlugin)\n {\n if (byteBlock.ToString()=="A")\n {\n this.PluginsManager.Raise<IAPlugin>("GoToA",this,new RRQMEventArgs());\n }\n }\n }\n}\n')))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[231],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>g});var r=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,l=function(e,t){if(null==e)return{};var n,r,l={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},k=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),k=u(n),g=l,m=k["".concat(p,".").concat(g)]||k[g]||s[g]||o;return n?r.createElement(m,a(a({ref:t},c),{},{components:n})):r.createElement(m,a({ref:t},c))}));function g(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=k;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:l,a[1]=i;for(var u=2;u<o;u++)a[u]=n[u];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}k.displayName="MDXCreateElement"},1645:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=n(7462),l=(n(7294),n(3905));const o={id:"pluginsmanager",sidebar_position:12,title:"\u63d2\u4ef6\u7cfb\u7edf",sidebar_label:"4.12 \u63d2\u4ef6\u7cfb\u7edf"},a=void 0,i={unversionedId:"04\u3001Core/pluginsmanager",id:"04\u3001Core/pluginsmanager",title:"\u63d2\u4ef6\u7cfb\u7edf",description:"\u8bf4\u660e",source:"@site/docs/04\u3001Core/4.12 \u63d2\u4ef6\u7cfb\u7edf.mdx",sourceDirName:"04\u3001Core",slug:"/04\u3001Core/pluginsmanager",permalink:"/touchsocket/docs/04\u3001Core/pluginsmanager",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/04\u3001Core/4.12 \u63d2\u4ef6\u7cfb\u7edf.mdx",tags:[],version:"current",sidebarPosition:12,frontMatter:{id:"pluginsmanager",sidebar_position:12,title:"\u63d2\u4ef6\u7cfb\u7edf",sidebar_label:"4.12 \u63d2\u4ef6\u7cfb\u7edf"},sidebar:"tutorialSidebar",previous:{title:"4.11 \u6587\u4ef6\u6d41\u6c60",permalink:"/touchsocket/docs/04\u3001Core/filepool"},next:{title:"4.13 \u5305\u5e8f\u5217\u5316\u6a21\u5f0f",permalink:"/touchsocket/docs/04\u3001Core/ipackage"}},p={},u=[{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u4ea7\u54c1\u7279\u70b9",id:"\u4ea7\u54c1\u7279\u70b9",level:2},{value:"\u4ea7\u54c1\u5e94\u7528\u573a\u666f",id:"\u4ea7\u54c1\u5e94\u7528\u573a\u666f",level:2},{value:"\u63d2\u4ef6\u7279\u6027",id:"\u63d2\u4ef6\u7279\u6027",level:2},{value:"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6",id:"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6",level:2},{value:"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6",id:"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6",level:2}],c={toc:u};function s(e){let{components:t,...n}=e;return(0,l.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u63d2\u4ef6\u662f\u5bf9TouchSocket\u4ea7\u54c1\u7684\u6a2a\u5411\u6269\u5c55\u3002")),(0,l.kt)("h2",{id:"\u4ea7\u54c1\u7279\u70b9"},"\u4ea7\u54c1\u7279\u70b9"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u7b80\u5355\u6613\u7528\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u6613\u6269\u5c55\u3002")),(0,l.kt)("h2",{id:"\u4ea7\u54c1\u5e94\u7528\u573a\u666f"},"\u4ea7\u54c1\u5e94\u7528\u573a\u666f"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"TCP\u57fa\u7840\u4f7f\u7528\u573a\u666f\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u81ea\u5b9a\u4e49\u534f\u8bae\u89e3\u6790\u573a\u666f\u3002")),(0,l.kt)("h2",{id:"\u63d2\u4ef6\u7279\u6027"},"\u63d2\u4ef6\u7279\u6027"),(0,l.kt)("p",null,"\u3010\u591a\u7ebf\u7a0b\u5e76\u53d1\u3011\n\u63d2\u4ef6\u7684\u6240\u6709\u89e6\u53d1\uff0c\u5747\u662f\u540c\u4e00\u5b9e\u4f8b\uff0c\u6240\u4ee5\u5728\u670d\u52a1\u5668\u8fd0\u884c\u65f6\uff0c\u51e0\u4e4e\u90fd\u662f\u5e76\u53d1\u89e6\u53d1\u7684\uff0c\u6240\u6709\u5e94\u5f53\u8003\u8651\u5e76\u53d1\u95ee\u9898\u3002"),(0,l.kt)("p",null,"\u3010\u63d2\u4ef6\u5148\u884c\u3011\n\u5f53\u542f\u7528\u63d2\u4ef6\u65f6\uff0c\u63d2\u4ef6\u7684\u89e6\u53d1",(0,l.kt)("strong",{parentName:"p"},"\u4ec5\u6b21\u4e8e"),"\u65b9\u6cd5\u91cd\u5199\uff0c\u800c",(0,l.kt)("strong",{parentName:"p"},"\u4f18\u4e8e"),"\u4e8b\u4ef6\u3002"),(0,l.kt)("p",null,"\u3010\u6267\u884c\u987a\u5e8f\u3011\n\u6bcf\u4e2a\u63d2\u4ef6\u90fd\u6709\u4e00\u4e2a",(0,l.kt)("strong",{parentName:"p"},"Order"),"\u5c5e\u6027\uff0c\u8be5\u5c5e\u6027\u8868\u793a\u8be5\u63d2\u4ef6\u7684\u6267\u884c\u987a\u5e8f\uff0c\u6570\u503c\u5c0f\uff0c\u8d8a\u63d0\u524d\u6267\u884c\uff08Order\u5728Add\u4e4b\u524d\u751f\u6548\uff0c\u540e\u7eed\u4fee\u6539\u65e0\u6548\uff09\u3002"),(0,l.kt)("p",null,"\u3010\u4e2d\u65ad\u4f20\u9012\u3011\n\u5f53\u67d0\u4e2a\u63d2\u4ef6\u5728\u54cd\u5e94\u65f6\uff0c\u5982\u679c\u8bbe\u7f6ee.Handled=true,\u5219\u8be5\u6570\u636e\u5c06",(0,l.kt)("strong",{parentName:"p"},"\u4e0d\u4f1a"),"\u518d\u89e6\u53d1\u540e\u7eed\u7684\u63d2\u4ef6\u3001\u4e8b\u4ef6\u3001\u91cd\u5199\u65b9\u6cd5\u3002"),(0,l.kt)("h2",{id:"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6"},"\u7528\u6237\u81ea\u5b9a\u4e49\u63d2\u4ef6"),(0,l.kt)("p",null,"\u7528\u6237\u901a\u8fc7\u5b9e\u73b0\u6846\u67b6\u9884\u8bbe\u7684\u63d2\u4ef6\u63a5\u53e3\uff0c\u5373\u53ef\u63a5\u6536\u76f8\u5e94\u7684\u89e6\u53d1\u3002\u6bcf\u4e2a\u7ec4\u4ef6\u90fd\u6709\u8be6\u7ec6\u7684\u63d2\u4ef6\u652f\u6301\u8bf4\u660e\u3002"),(0,l.kt)("p",null,"\u4f8b\u5982\uff1a",(0,l.kt)("strong",{parentName:"p"},"ITcpPlugin"),"\u3001",(0,l.kt)("strong",{parentName:"p"},"ITokenPlugin"),"\u3001",(0,l.kt)("strong",{parentName:"p"},"IProtocolPlugin"),"\u7b49\u3002"),(0,l.kt)("h2",{id:"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6"},"\u7cfb\u7edf\u81ea\u5b9a\u4e49\u63d2\u4ef6"),(0,l.kt)("p",null,"\u5f53\u5404\u4f4d\u670b\u53cb\u4f7f\u7528TouchSocket\u5c01\u88c5\u81ea\u5df1\u7684dll\u65f6\uff0c\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u5b9a\u4e49\u63d2\u4ef6\u3002\u90a3\u4e48\u8fd9\u4e2a\u9700\u6c42TouchSocket\u4e5f\u80fd\u6ee1\u8db3\u5927\u5bb6\u3002"),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"\u4f8b\u5982\uff1a\u5b9e\u73b0\u57fa\u4e8eTCP\u7684\u7279\u6b8a\u4fe1\u606f\u81ea\u5b9a\u4e49\u63d2\u4ef6\uff0c\u5f53\u6536\u5230\u5b57\u6bcd\u2018A\u2019\u65f6\uff0c\u5e0c\u671b\u89e6\u53d1\u5b9e\u73b0IAPlugin\u63a5\u53e3\u63d2\u4ef6\u7684GoToA\u65b9\u6cd5\u3002")),(0,l.kt)("p",null,"\u5177\u4f53\u64cd\u4f5c\u5982\u4e0b\uff1a"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"\u58f0\u660eIAPlugin\u63a5\u53e3\uff0c\u7ee7\u627f",(0,l.kt)("strong",{parentName:"li"},"IPlugin"),"\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u58f0\u660eGoToA\u63a5\u53e3\u65b9\u6cd5\uff08\u8be5\u65b9\u6cd5\u5fc5\u987b",(0,l.kt)("strong",{parentName:"li"},"\u4e24\u4e2a"),"\u53c2\u6570\uff0c\u7b2c\u4e00\u53c2\u6570\u65e0\u8981\u6c42\uff0c\u4e00\u822c\u4e3a\u89e6\u53d1\u4e3b\u4f53\uff0c\u7b2c\u4e8c\u53c2\u6570",(0,l.kt)("strong",{parentName:"li"},"\u5fc5\u987b\u7ee7\u627f"),"\u81ea",(0,l.kt)("strong",{parentName:"li"},"RRQMEventArgs//TODO:\u8fd9\u91cc\u5e94\u8be5\u4fee\u6539\u4e3aEventArgs\uff1f\u672a\u627e\u5230TouchSocketEventArgs\u7c7b\u4f3c\uff0c\u8fd8\u6709\u4e0b\u9762\u7684\u4ee3\u7801"),"\uff09\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u5728\u5408\u9002\u65f6\u5019\uff0c\u5224\u65ad\u5f53\u524d\u914d\u7f6e\u662f\u5426\u652f\u6301\u63d2\u4ef6\uff0c\u7136\u540e\u4f7f\u7528\u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\u7684",(0,l.kt)("strong",{parentName:"li"},"PluginsManager"),"\u5c5e\u6027\u8c03\u7528",(0,l.kt)("strong",{parentName:"li"},"Raise"),"\u65b9\u6cd5\uff0c\u6b64\u5904\u7684\u6cdb\u578b\uff08",(0,l.kt)("strong",{parentName:"li"},"IAPlugin"),"\uff09\u5fc5\u987b\u4e3a\u63a5\u53e3\u7c7b\u578b\u3002")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-csharp"},"public interface IAPlugin : IPlugin\n{\n void GoToA(ITcpClientBase client,RRQMEventArgs e);\n}\n")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTClient : TcpClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n if (this.UsePlugin)\n {\n if (byteBlock.ToString()=="A")\n {\n this.PluginsManager.Raise<IAPlugin>("GoToA",this,new RRQMEventArgs());\n }\n }\n }\n}\n')))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4972],{4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),o=n(5999),l=n(1944),r=n(8765);function c(){return a.createElement(a.Fragment,null,a.createElement(l.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[665],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(n),d=a,k=m["".concat(c,".").concat(d)]||m[d]||s[d]||o;return n?r.createElement(k,l(l({ref:t},u),{},{components:n})):r.createElement(k,l({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var p=2;p<o;p++)l[p]=n[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},7929:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const o={id:"config",title:"\u914d\u7f6e\u7c7b",sidebar_label:"05\u3001\u914d\u7f6e\u7c7b"},l=void 0,i={unversionedId:"config",id:"config",title:"\u914d\u7f6e\u7c7b",description:"| \u5c5e\u6027\u540d | \u5c5e\u6027\u63cf\u8ff0 |",source:"@site/docs/05\u3001\u914d\u7f6e\u7c7b.mdx",sourceDirName:".",slug:"/config",permalink:"/touchsocket/docs/config",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/05\u3001\u914d\u7f6e\u7c7b.mdx",tags:[],version:"current",frontMatter:{id:"config",title:"\u914d\u7f6e\u7c7b",sidebar_label:"05\u3001\u914d\u7f6e\u7c7b"},sidebar:"tutorialSidebar",previous:{title:"4.14 \u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b",permalink:"/touchsocket/docs/04\u3001Core/othercore"},next:{title:"6.1 \u4ea7\u54c1\u53ca\u67b6\u6784\u4ecb\u7ecd",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/tcpdescription"}},c={},p=[],u={toc:p};function s(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u540d")),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u63cf\u8ff0")))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SetBufferLength"),(0,a.kt)("td",{parentName:"tr",align:null},"\u7f13\u5b58\u6c60\u5bb9\u91cf\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024*64\u3002")))),(0,a.kt)("p",null,"\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5c0f\uff0c\u5efa\u8bae10k\u5de6\u53f3\u7684\u503c\u3002\u66f4\u52a0\u8282\u7ea6\u5185\u5b58\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5927\uff0c\u4f8b\u5982\u6587\u4ef6\u4f20\u8f93\u7b49\uff0c\u5efa\u8bae64k\uff0c\u751a\u81f3\u66f4\u5927\u7684\u503c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u8be5\u503c\u867d\u7136\u65e0\u4e0a\u9650\uff0c\u4f46\u662f\u4e00\u822c\u4e0d\u8981\u8d85\u8fc71Mb\uff0c\u4e0d\u7136\u4e0d\u4ec5\u6ca1\u610f\u4e49\uff0c\u8fd8\u5f88\u6d6a\u8d39\n|\n| SetMaxPackageSize | \u6570\u636e\u5305\u6700\u5927\u503c\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024",(0,a.kt)("em",{parentName:"li"},"1024"),"10\u3002\u8be5\u503c\u4f1a\u5728\u9002\u5f53\u65f6\u95f4\uff0c\u76f4\u63a5\u4f5c\u7528DataHandlingAdapter.MaxPackageSize\u3002 |\n| SetThreadCount | \u591a\u7ebf\u7a0b\u6570\u91cf\u3002\u8be5\u503c\u5728Auto\u6a21\u5f0f\u4e0b\u6307\u793a\u7ebf\u7a0b\u6c60\u7684\u6700\u5c11\u7ebf\u7a0b\u6570\u91cf\u548cIO\u7ebf\u7a0b\u6570\u91cf\u3002\n\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("li",{parentName:"ol"},"\u5f02\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u7ebf\u7a0b\u6570\u91cf\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u540c\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u5e94\u5f53\u8003\u8651\u4e24\u4e2a\u56e0\u7d20\u3002\u8be5\u64cd\u4f5c\u662f\u5426\u4e3a\u8017\u65f6\u64cd\u4f5c\uff0c\u5982\u679c\u662f\uff0c\u5219\u8be5\u503c\u5728\u5141\u8bb8\u8303\u56f4\u5185\uff0c\u5e94\u5f53\u8bbe\u7f6e\u66f4\u53ef\u80fd\u5927\u7684\u503c\u3002\u5982\u679c\u4e0d\u662f\uff0c\u5219\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002\n|\n| SetListenIPHosts | \u76d1\u542cIP\u548c\u7aef\u53e3\u53f7\u7ec4\uff0c\u53ef\u4ee5\u4e00\u6b21\u6027\u8bbe\u7f6e\u591a\u4e2a\u5730\u5740\u3002 |\n| SetServerName | \u670d\u52a1\u5668\u6807\u8bc6\u540d\u79f0\uff0c\u65e0\u5b9e\u9645\u4f7f\u7528\u610f\u4e49\u3002 |\n| SetBacklogProperty | Tcp\u534a\u8fde\u63a5\u6302\u8d77\u8fde\u63a5\u961f\u5217\u7684\u6700\u5927\u957f\u5ea6\u3002\u9ed8\u8ba4\u4e3a30 |\n| SetMaxCount | \u6700\u5927\u53ef\u8fde\u63a5\u6570\uff0c\u9ed8\u8ba4\u4e3a10000 |\n| SetClearInterval | \u6e05\u7406\u65e0\u6570\u636e\u4ea4\u4e92\u7684SocketClient\uff08\u5355\u4f4d\uff1a\u6beb\u79d2\uff09\uff0c\u9ed8\u8ba460000 \u6beb\u79d2\u3002\u5982\u679c\u4e0d\u60f3\u6e05\u9664\uff0c\u53ef\u4f7f\u7528-1\u3002\u4f46\u662f\uff0c\u5e76\u4e0d\u5efa\u8bae\u8bbe\u7f6e-1\uff0c\u56e0\u4e3a\u5047\u5982\u6709\u5ba2\u6237\u7aef\u56e0\u4e3a\u7f51\u7edc\u6545\u969c\u5bfc\u81f4\u50f5\u6b7b\u7684\u8bdd\uff0c\u670d\u52a1\u5668\u5c06\u6c38\u4e45\u4fdd\u7559\u5176\u5b9e\u4f8b\u3002\u6240\u4ee5\u6700\u597d\u7684\u65b9\u5f0f\u662f\u6309\u7167\u81ea\u5df1\u7684\u4e1a\u52a1\u9700\u8981\uff0c\u8bbe\u7f6e\u5bf9\u5e94\u503c\uff0c\u56e0\u4e3a\u4ece\u666e\u904d\u6027\u800c\u8a00\uff0c\u65e0\u6570\u636e\u4ea4\u4e92\u7684\u5ba2\u6237\u7aef\uff0c\u5982\u679c\u65f6\u95f4\u8d85\u51fa10s\uff0c\u5219\u65ad\u5f00\u7684\u7b56\u7565\u662f\u4f18\u4e8e\u4e00\u76f4\u8fde\u63a5\u7684\u3002\u6216\u8005\uff0c\u81ea\u5df1\u89c4\u5b9a\u5fc3\u8df3\u6570\u636e\u5305\uff0c\u4fdd\u6301\u5ba2\u6237\u7aef\u6d3b\u6027\u3002 |\n| SetClearType | \u6e05\u7406\u7edf\u8ba1\u7c7b\u578b\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Receive\uff1a\u4e3a\u5728\u6536\u5230\u6570\u636e\u65f6\uff0c\u5237\u65b0\u7edf\u8ba1\uff0c\u5982\u679c\u4e00\u76f4\u6709\u6570\u636e\u63a5\u6536\uff0c\u5219\u4e0d\u4f1a\u88ab\u4e3b\u52a8\u6e05\u7406\u65ad\u5f00\u3002"),(0,a.kt)("li",{parentName:"ul"},"Send\uff1a\u4e3a\u5728\u53d1\u9001\u6570\u636e\u65f6\uff0c\u5237\u65b0\u7edf\u8ba1\uff0c\u5982\u679c\u4e00\u76f4\u6709\u6570\u636e\u53d1\u9001\uff0c\u5219\u4e0d\u4f1a\u88ab\u4e3b\u52a8\u6e05\u7406\u65ad\u5f00\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u4f4d\u57df\u53e0\u52a0\u3002\n|\n| SetReceiveType | \u63a5\u6536\u7c7b\u578b\u3002"),(0,a.kt)("li",{parentName:"ul"},"AUTO\uff1a\u81ea\u52a8\u63a5\u6536\u6a21\u5f0f\u3002"),(0,a.kt)("li",{parentName:"ul"},"None\uff1a\u4e0d\u6295\u9012IO\u63a5\u6536\u7533\u8bf7\uff0c\u7528\u6237\u53ef\u901a\u8fc7GetStream\uff0c\u83b7\u53d6\u5230\u6d41\u4ee5\u540e\uff0c\u81ea\u5df1\u5904\u7406\u63a5\u6536\u3002\u6ce8\u610f\uff1a\u8fde\u63a5\u7aef\u4e0d\u4f1a\u611f\u77e5\u4e3b\u52a8\u65ad\u5f00\u3002\n|\n| UsePlugin | \u662f\u5426\u542f\u7528\u63d2\u4ef6\u3002\u5728\u542f\u7528\u65f6\u6216\u8bb8\u4f1a\u5e26\u6765\u4e00\u70b9\u70b9\u6027\u80fd\u635f\u8017\uff0c\u57fa\u672c\u4e0a\u4e0d\u662f\u5343\u4e07\u6570\u636e\u4ea4\u4e92\u6839\u672c\u4e0d\u503c\u4e00\u63d0\u3002 |\n| SetServiceSslOption | Ssl\u914d\u7f6e\uff0c\u4e3aNull\u65f6\u5219\u4e0d\u542f\u7528\u3002 |\n| UseNoDelay | \u8bbe\u7f6eSocket\u7684NoDelay\u5c5e\u6027\uff0c\u9ed8\u8ba4false\u3002 |\n| UseDelaySender | \u4f7f\u7528\u5ef6\u8fdf\u53d1\u9001\u3002\n\u4f17\u6240\u5468\u77e5\uff0ctcp\u6570\u636e\u62a5\u6587\u4e3a\u4e86\u53d1\u9001\u6548\u7387\uff0c\u4f1a\u9ed8\u8ba4\u542f\u7528",(0,a.kt)("strong",{parentName:"li"},"\u5ef6\u8fdf\u7b97\u6cd5"),"\u3002\u4f46\u662f\u8fd9\u79cd\u8bbe\u7f6e\uff0c\u53ea\u80fd\u4e00\u5b9a\u7a0b\u5ea6\u7684\u7f13\u89e3\u5c0f\u6570\u636e\u53d1\u9001\u6548\u7387\u4f4e\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u5b83\u4e3a\u4e86\u4fdd\u8bc1\u591a\u7ebf\u7a0b\u53d1\u9001\u7684\u6709\u5e8f\u6027\uff0c\u5728send\u51fd\u6570\u4e2d\u8bbe\u7f6e\u4e86\u7ebf\u7a0b\u540c\u6b65\uff0c\u6240\u4ee5\u8bf4\uff0c\u6bcf\u8c03\u7528\u4e00\u6b21send\uff0c\u5b9e\u9645\u4e0a\u90fd\u662f\u5de8\u5927\u7684\u6027\u80fd\u6d88\u8017\uff08\u6b64\u5904\u7528iocp\u53d1\u9001\u4ea6\u7136\uff09\u3002\u6240\u4ee5\uff0c\u8981\u89e3\u51b3\u8be5\u95ee\u9898\uff0c \u6700\u7ec8\u8fd8\u662f\u8981\u5c06\u5c0f\u6570\u636e\uff0c\u7ec4\u5408\u6210\u5927\u6570\u636e\uff0c\u8fd9\u6837\u624d\u80fd\u66f4\u9ad8\u6548\u7387\u7684\u53d1\u9001\u3002\u6240\u4ee5\uff0cDelaySender\u6b63\u662f\u8d1f\u8d23\u6b64\u7c7b\u5de5\u4f5c\u7684\u3002")),(0,a.kt)("p",null,"\u4f7f\u7528DelaySender\uff0c\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u7684\u964d\u4f4e\u53d1\u9001\u7684\u53ca\u65f6\u6027\uff0c\u4f46\u662f\u964d\u4f4e\u7a0b\u5ea6\u5e76\u4e0d\u9ad8\uff0c\u7b80\u5355\u6765\u8bf4\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u4e00\u4e2a\u5305\u5927\u4e8e512kb\uff0c\u5219\u4e0d\u4f1a\u5ef6\u8fdf\uff0c\u76f4\u63a5\u53d1\u9001\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u53d1\u9001\u7b2c\u4e00\u4e2a\u5305\uff0c\u4e0e\u7b2c\u4e8c\u4e2a\u5305\u7684\u65f6\u95f4\u95f4\u9694\u5c0f\u4e8e\u4e00\u4e2a\u7ebf\u7a0b\u6c60\u7ebf\u7a0b\u8c03\u5ea6\u7684\u65f6\u95f4\uff08\u8fd9\u4e2a\u65f6\u95f4\u6781\u77ed\uff0c\u4e00\u822c\u6765\u8bf4\u4f1a\u572810",(0,a.kt)("strong",{parentName:"li"},"\u5fae\u79d2"),"\u5de6\u53f3\uff09\uff0c\u5219\u4f1a\u5c06\u8fd9\u4e24\u4e2a\u5305\u538b\u7f29\u4e3a\u4e00\u4e2a\u5305\u53d1\u9001\u3002\n|\n| UseReuseAddress | \u542f\u7528\u7aef\u53e3\u590d\u7528\u3002\u8be5\u914d\u7f6e\u53ef\u5728\u670d\u52a1\u5668\u3001\u6216\u5ba2\u6237\u7aef\u5728\u76d1\u542c\u7aef\u53e3\u65f6\uff0c\u8fd0\u884c\u76d1\u542c\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u53ef\u4ee5\u4e00\u5b9a\u7a0b\u5ea6\u7f13\u89e3\u7aef\u53e3\u6765\u4e0d\u53ca\u91ca\u653e\u7684\u95ee\u9898 |")))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[2665],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=p(n),d=a,f=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(f,l(l({ref:t},s),{},{components:n})):r.createElement(f,l({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var p=2;p<o;p++)l[p]=n[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},7929:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const o={id:"config",title:"\u914d\u7f6e\u7c7b",sidebar_label:"05\u3001\u914d\u7f6e\u7c7b"},l=void 0,i={unversionedId:"config",id:"config",title:"\u914d\u7f6e\u7c7b",description:"| \u5c5e\u6027\u540d | \u5c5e\u6027\u63cf\u8ff0 |",source:"@site/docs/05\u3001\u914d\u7f6e\u7c7b.mdx",sourceDirName:".",slug:"/config",permalink:"/touchsocket/docs/config",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/05\u3001\u914d\u7f6e\u7c7b.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673587377,formattedLastUpdatedAt:"Jan 13, 2023",frontMatter:{id:"config",title:"\u914d\u7f6e\u7c7b",sidebar_label:"05\u3001\u914d\u7f6e\u7c7b"},sidebar:"tutorialSidebar",previous:{title:"4.14 \u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b",permalink:"/touchsocket/docs/04\u3001Core/othercore"},next:{title:"6.1 \u4ea7\u54c1\u53ca\u67b6\u6784\u4ecb\u7ecd",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/tcpdescription"}},c={},p=[],s={toc:p};function u(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u540d")),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u63cf\u8ff0")))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SetBufferLength"),(0,a.kt)("td",{parentName:"tr",align:null},"\u7f13\u5b58\u6c60\u5bb9\u91cf\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024*64\u3002")))),(0,a.kt)("p",null,"\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5c0f\uff0c\u5efa\u8bae10k\u5de6\u53f3\u7684\u503c\u3002\u66f4\u52a0\u8282\u7ea6\u5185\u5b58\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5927\uff0c\u4f8b\u5982\u6587\u4ef6\u4f20\u8f93\u7b49\uff0c\u5efa\u8bae64k\uff0c\u751a\u81f3\u66f4\u5927\u7684\u503c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u8be5\u503c\u867d\u7136\u65e0\u4e0a\u9650\uff0c\u4f46\u662f\u4e00\u822c\u4e0d\u8981\u8d85\u8fc71Mb\uff0c\u4e0d\u7136\u4e0d\u4ec5\u6ca1\u610f\u4e49\uff0c\u8fd8\u5f88\u6d6a\u8d39\n|\n| SetMaxPackageSize | \u6570\u636e\u5305\u6700\u5927\u503c\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024",(0,a.kt)("em",{parentName:"li"},"1024"),"10\u3002\u8be5\u503c\u4f1a\u5728\u9002\u5f53\u65f6\u95f4\uff0c\u76f4\u63a5\u4f5c\u7528DataHandlingAdapter.MaxPackageSize\u3002 |\n| SetThreadCount | \u591a\u7ebf\u7a0b\u6570\u91cf\u3002\u8be5\u503c\u5728Auto\u6a21\u5f0f\u4e0b\u6307\u793a\u7ebf\u7a0b\u6c60\u7684\u6700\u5c11\u7ebf\u7a0b\u6570\u91cf\u548cIO\u7ebf\u7a0b\u6570\u91cf\u3002\n\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("li",{parentName:"ol"},"\u5f02\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u7ebf\u7a0b\u6570\u91cf\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u540c\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u5e94\u5f53\u8003\u8651\u4e24\u4e2a\u56e0\u7d20\u3002\u8be5\u64cd\u4f5c\u662f\u5426\u4e3a\u8017\u65f6\u64cd\u4f5c\uff0c\u5982\u679c\u662f\uff0c\u5219\u8be5\u503c\u5728\u5141\u8bb8\u8303\u56f4\u5185\uff0c\u5e94\u5f53\u8bbe\u7f6e\u66f4\u53ef\u80fd\u5927\u7684\u503c\u3002\u5982\u679c\u4e0d\u662f\uff0c\u5219\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002\n|\n| SetListenIPHosts | \u76d1\u542cIP\u548c\u7aef\u53e3\u53f7\u7ec4\uff0c\u53ef\u4ee5\u4e00\u6b21\u6027\u8bbe\u7f6e\u591a\u4e2a\u5730\u5740\u3002 |\n| SetServerName | \u670d\u52a1\u5668\u6807\u8bc6\u540d\u79f0\uff0c\u65e0\u5b9e\u9645\u4f7f\u7528\u610f\u4e49\u3002 |\n| SetBacklogProperty | Tcp\u534a\u8fde\u63a5\u6302\u8d77\u8fde\u63a5\u961f\u5217\u7684\u6700\u5927\u957f\u5ea6\u3002\u9ed8\u8ba4\u4e3a30 |\n| SetMaxCount | \u6700\u5927\u53ef\u8fde\u63a5\u6570\uff0c\u9ed8\u8ba4\u4e3a10000 |\n| SetClearInterval | \u6e05\u7406\u65e0\u6570\u636e\u4ea4\u4e92\u7684SocketClient\uff08\u5355\u4f4d\uff1a\u6beb\u79d2\uff09\uff0c\u9ed8\u8ba460000 \u6beb\u79d2\u3002\u5982\u679c\u4e0d\u60f3\u6e05\u9664\uff0c\u53ef\u4f7f\u7528-1\u3002\u4f46\u662f\uff0c\u5e76\u4e0d\u5efa\u8bae\u8bbe\u7f6e-1\uff0c\u56e0\u4e3a\u5047\u5982\u6709\u5ba2\u6237\u7aef\u56e0\u4e3a\u7f51\u7edc\u6545\u969c\u5bfc\u81f4\u50f5\u6b7b\u7684\u8bdd\uff0c\u670d\u52a1\u5668\u5c06\u6c38\u4e45\u4fdd\u7559\u5176\u5b9e\u4f8b\u3002\u6240\u4ee5\u6700\u597d\u7684\u65b9\u5f0f\u662f\u6309\u7167\u81ea\u5df1\u7684\u4e1a\u52a1\u9700\u8981\uff0c\u8bbe\u7f6e\u5bf9\u5e94\u503c\uff0c\u56e0\u4e3a\u4ece\u666e\u904d\u6027\u800c\u8a00\uff0c\u65e0\u6570\u636e\u4ea4\u4e92\u7684\u5ba2\u6237\u7aef\uff0c\u5982\u679c\u65f6\u95f4\u8d85\u51fa10s\uff0c\u5219\u65ad\u5f00\u7684\u7b56\u7565\u662f\u4f18\u4e8e\u4e00\u76f4\u8fde\u63a5\u7684\u3002\u6216\u8005\uff0c\u81ea\u5df1\u89c4\u5b9a\u5fc3\u8df3\u6570\u636e\u5305\uff0c\u4fdd\u6301\u5ba2\u6237\u7aef\u6d3b\u6027\u3002 |\n| SetClearType | \u6e05\u7406\u7edf\u8ba1\u7c7b\u578b\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Receive\uff1a\u4e3a\u5728\u6536\u5230\u6570\u636e\u65f6\uff0c\u5237\u65b0\u7edf\u8ba1\uff0c\u5982\u679c\u4e00\u76f4\u6709\u6570\u636e\u63a5\u6536\uff0c\u5219\u4e0d\u4f1a\u88ab\u4e3b\u52a8\u6e05\u7406\u65ad\u5f00\u3002"),(0,a.kt)("li",{parentName:"ul"},"Send\uff1a\u4e3a\u5728\u53d1\u9001\u6570\u636e\u65f6\uff0c\u5237\u65b0\u7edf\u8ba1\uff0c\u5982\u679c\u4e00\u76f4\u6709\u6570\u636e\u53d1\u9001\uff0c\u5219\u4e0d\u4f1a\u88ab\u4e3b\u52a8\u6e05\u7406\u65ad\u5f00\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u4f4d\u57df\u53e0\u52a0\u3002\n|\n| SetReceiveType | \u63a5\u6536\u7c7b\u578b\u3002"),(0,a.kt)("li",{parentName:"ul"},"AUTO\uff1a\u81ea\u52a8\u63a5\u6536\u6a21\u5f0f\u3002"),(0,a.kt)("li",{parentName:"ul"},"None\uff1a\u4e0d\u6295\u9012IO\u63a5\u6536\u7533\u8bf7\uff0c\u7528\u6237\u53ef\u901a\u8fc7GetStream\uff0c\u83b7\u53d6\u5230\u6d41\u4ee5\u540e\uff0c\u81ea\u5df1\u5904\u7406\u63a5\u6536\u3002\u6ce8\u610f\uff1a\u8fde\u63a5\u7aef\u4e0d\u4f1a\u611f\u77e5\u4e3b\u52a8\u65ad\u5f00\u3002\n|\n| UsePlugin | \u662f\u5426\u542f\u7528\u63d2\u4ef6\u3002\u5728\u542f\u7528\u65f6\u6216\u8bb8\u4f1a\u5e26\u6765\u4e00\u70b9\u70b9\u6027\u80fd\u635f\u8017\uff0c\u57fa\u672c\u4e0a\u4e0d\u662f\u5343\u4e07\u6570\u636e\u4ea4\u4e92\u6839\u672c\u4e0d\u503c\u4e00\u63d0\u3002 |\n| SetServiceSslOption | Ssl\u914d\u7f6e\uff0c\u4e3aNull\u65f6\u5219\u4e0d\u542f\u7528\u3002 |\n| UseNoDelay | \u8bbe\u7f6eSocket\u7684NoDelay\u5c5e\u6027\uff0c\u9ed8\u8ba4false\u3002 |\n| UseDelaySender | \u4f7f\u7528\u5ef6\u8fdf\u53d1\u9001\u3002\n\u4f17\u6240\u5468\u77e5\uff0ctcp\u6570\u636e\u62a5\u6587\u4e3a\u4e86\u53d1\u9001\u6548\u7387\uff0c\u4f1a\u9ed8\u8ba4\u542f\u7528",(0,a.kt)("strong",{parentName:"li"},"\u5ef6\u8fdf\u7b97\u6cd5"),"\u3002\u4f46\u662f\u8fd9\u79cd\u8bbe\u7f6e\uff0c\u53ea\u80fd\u4e00\u5b9a\u7a0b\u5ea6\u7684\u7f13\u89e3\u5c0f\u6570\u636e\u53d1\u9001\u6548\u7387\u4f4e\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u5b83\u4e3a\u4e86\u4fdd\u8bc1\u591a\u7ebf\u7a0b\u53d1\u9001\u7684\u6709\u5e8f\u6027\uff0c\u5728send\u51fd\u6570\u4e2d\u8bbe\u7f6e\u4e86\u7ebf\u7a0b\u540c\u6b65\uff0c\u6240\u4ee5\u8bf4\uff0c\u6bcf\u8c03\u7528\u4e00\u6b21send\uff0c\u5b9e\u9645\u4e0a\u90fd\u662f\u5de8\u5927\u7684\u6027\u80fd\u6d88\u8017\uff08\u6b64\u5904\u7528iocp\u53d1\u9001\u4ea6\u7136\uff09\u3002\u6240\u4ee5\uff0c\u8981\u89e3\u51b3\u8be5\u95ee\u9898\uff0c \u6700\u7ec8\u8fd8\u662f\u8981\u5c06\u5c0f\u6570\u636e\uff0c\u7ec4\u5408\u6210\u5927\u6570\u636e\uff0c\u8fd9\u6837\u624d\u80fd\u66f4\u9ad8\u6548\u7387\u7684\u53d1\u9001\u3002\u6240\u4ee5\uff0cDelaySender\u6b63\u662f\u8d1f\u8d23\u6b64\u7c7b\u5de5\u4f5c\u7684\u3002")),(0,a.kt)("p",null,"\u4f7f\u7528DelaySender\uff0c\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u7684\u964d\u4f4e\u53d1\u9001\u7684\u53ca\u65f6\u6027\uff0c\u4f46\u662f\u964d\u4f4e\u7a0b\u5ea6\u5e76\u4e0d\u9ad8\uff0c\u7b80\u5355\u6765\u8bf4\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u4e00\u4e2a\u5305\u5927\u4e8e512kb\uff0c\u5219\u4e0d\u4f1a\u5ef6\u8fdf\uff0c\u76f4\u63a5\u53d1\u9001\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u53d1\u9001\u7b2c\u4e00\u4e2a\u5305\uff0c\u4e0e\u7b2c\u4e8c\u4e2a\u5305\u7684\u65f6\u95f4\u95f4\u9694\u5c0f\u4e8e\u4e00\u4e2a\u7ebf\u7a0b\u6c60\u7ebf\u7a0b\u8c03\u5ea6\u7684\u65f6\u95f4\uff08\u8fd9\u4e2a\u65f6\u95f4\u6781\u77ed\uff0c\u4e00\u822c\u6765\u8bf4\u4f1a\u572810",(0,a.kt)("strong",{parentName:"li"},"\u5fae\u79d2"),"\u5de6\u53f3\uff09\uff0c\u5219\u4f1a\u5c06\u8fd9\u4e24\u4e2a\u5305\u538b\u7f29\u4e3a\u4e00\u4e2a\u5305\u53d1\u9001\u3002\n|\n| UseReuseAddress | \u542f\u7528\u7aef\u53e3\u590d\u7528\u3002\u8be5\u914d\u7f6e\u53ef\u5728\u670d\u52a1\u5668\u3001\u6216\u5ba2\u6237\u7aef\u5728\u76d1\u542c\u7aef\u53e3\u65f6\uff0c\u8fd0\u884c\u76d1\u542c\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u53ef\u4ee5\u4e00\u5b9a\u7a0b\u5ea6\u7f13\u89e3\u7aef\u53e3\u6765\u4e0d\u53ca\u91ca\u653e\u7684\u95ee\u9898 |")))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[277],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,l,a=function(e,t){if(null==e)return{};var n,l,a={},r=Object.keys(e);for(l=0;l<r.length;l++)n=r[l],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l<r.length;l++)n=r[l],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=l.createContext({}),p=function(e){var t=l.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return l.createElement(o.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},d=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(n),k=a,m=d["".concat(o,".").concat(k)]||d[k]||s[k]||r;return n?l.createElement(m,i(i({ref:t},u),{},{components:n})):l.createElement(m,i({ref:t},u))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var p=2;p<r;p++)i[p]=n[p];return l.createElement.apply(null,i)}return l.createElement.apply(null,n)}d.displayName="MDXCreateElement"},7912:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>s,frontMatter:()=>r,metadata:()=>c,toc:()=>p});var l=n(7462),a=(n(7294),n(3905));const r={id:"createtcpclient",sidebar_position:3,title:"\u521b\u5efaTcpClient",sidebar_label:"6.3 \u521b\u5efaTcpClient"},i=void 0,c={unversionedId:"06\u3001Tcp\u7ec4\u4ef6/createtcpclient",id:"06\u3001Tcp\u7ec4\u4ef6/createtcpclient",title:"\u521b\u5efaTcpClient",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/06\u3001Tcp\u7ec4\u4ef6/6.3 \u521b\u5efaTcpClient.mdx",sourceDirName:"06\u3001Tcp\u7ec4\u4ef6",slug:"/06\u3001Tcp\u7ec4\u4ef6/createtcpclient",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/createtcpclient",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/06\u3001Tcp\u7ec4\u4ef6/6.3 \u521b\u5efaTcpClient.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1673598087,formattedLastUpdatedAt:"Jan 13, 2023",sidebarPosition:3,frontMatter:{id:"createtcpclient",sidebar_position:3,title:"\u521b\u5efaTcpClient",sidebar_label:"6.3 \u521b\u5efaTcpClient"},sidebar:"tutorialSidebar",previous:{title:"6.2 \u521b\u5efaTcpService",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/createtcpservice"},next:{title:"6.4 \u540c\u6b65\u8bf7\u6c42",permalink:"/touchsocket/docs/06\u3001Tcp\u7ec4\u4ef6/waitingclient"}},o={},p=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u7279\u70b9",id:"\u4e8c\u7279\u70b9",level:2},{value:"\u4e09\u3001\u4ea7\u54c1\u5e94\u7528\u573a\u666f",id:"\u4e09\u4ea7\u54c1\u5e94\u7528\u573a\u666f",level:2},{value:"\u56db\u3001\u5ba2\u6237\u7aef\u5de5\u4f5c\u6d41\u7a0b",id:"\u56db\u5ba2\u6237\u7aef\u5de5\u4f5c\u6d41\u7a0b",level:2},{value:"\u4e94\u3001\u53ef\u914d\u7f6e\u9879",id:"\u4e94\u53ef\u914d\u7f6e\u9879",level:2},{value:"\u516d\u3001\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u3001\u670d\u52a1\u5668\u5747\u652f\u6301",id:"\u516d\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u670d\u52a1\u5668\u5747\u652f\u6301",level:2},{value:"\u4e03\u3001\u521b\u5efaTcpClient",id:"\u4e03\u521b\u5efatcpclient",level:2},{value:"\u516b\u3001\u63a5\u6536\u6570\u636e",id:"\u516b\u63a5\u6536\u6570\u636e",level:2},{value:"8.1 Received\u59d4\u6258\u5904\u7406",id:"81-received\u59d4\u6258\u5904\u7406",level:4},{value:"8.2 \u63d2\u4ef6\u5904\u7406\u63a8\u8350",id:"82-\u63d2\u4ef6\u5904\u7406\u63a8\u8350",level:4},{value:"\u4e5d\u3001\u53d1\u9001\u6570\u636e",id:"\u4e5d\u53d1\u9001\u6570\u636e",level:2}],u={toc:p};function s(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,l.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,a.kt)("p",null,"TcpClient\u662fTcp\u7cfb\u5ba2\u6237\u7aef\u57fa\u7c7b\uff0c\u4ed6\u76f4\u63a5\u53c2\u4e0etcp\u7684\u8fde\u63a5\u3001\u53d1\u9001\u3001\u63a5\u6536\u3001\u5904\u7406\u3001\u65ad\u5f00\u7b49\uff0c\u4ed6\u7684\u4e1a\u52a1\u4e0e\u670d\u52a1\u5668\u7684",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u662f\u4e00\u4e00\u5bf9\u5e94\u7684\u3002"),(0,a.kt)("h2",{id:"\u4e8c\u7279\u70b9"},"\u4e8c\u3001\u7279\u70b9"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7b80\u5355\u6613\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},"IOCP\u591a\u7ebf\u7a0b\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5185\u5b58\u6c60\u652f\u6301"),(0,a.kt)("li",{parentName:"ul"},"\u9ad8\u6027\u80fd"),(0,a.kt)("li",{parentName:"ul"},"\u9002\u914d\u5668\u9884\u5904\u7406\uff0c\u4e00\u952e\u5f0f\u89e3\u51b3",(0,a.kt)("strong",{parentName:"li"},"\u5206\u5305"),"\u3001",(0,a.kt)("strong",{parentName:"li"},"\u7c98\u5305"),"\u3001\u5bf9\u8c61\u89e3\u6790(\u5982HTTP\uff0cJson)\u7b49\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u8d85\u7b80\u5355\u7684\u540c\u6b65\u53d1\u9001\u3001\u5f02\u6b65\u53d1\u9001\u3001\u63a5\u6536\u7b49\u64cd\u4f5c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u57fa\u4e8e\u59d4\u6258\u3001\u63d2\u4ef6\u9a71\u52a8\uff0c\u8ba9\u6bcf\u4e00\u6b65\u90fd\u80fd\u6267\u884cAOP\u3002")),(0,a.kt)("h2",{id:"\u4e09\u4ea7\u54c1\u5e94\u7528\u573a\u666f"},"\u4e09\u3001\u4ea7\u54c1\u5e94\u7528\u573a\u666f"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6240\u6709Tcp\u57fa\u7840\u4f7f\u7528\u573a\u666f\uff1a\u53ef\u8de8\u5e73\u53f0\u3001\u8de8\u8bed\u8a00\u4f7f\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u81ea\u5b9a\u4e49\u534f\u8bae\u89e3\u6790\u573a\u666f\uff1a\u53ef\u89e3\u6790\u4efb\u610f\u6570\u636e\u683c\u5f0f\u7684TCP\u6570\u636e\u62a5\u6587\u3002")),(0,a.kt)("h2",{id:"\u56db\u5ba2\u6237\u7aef\u5de5\u4f5c\u6d41\u7a0b"},"\u56db\u3001\u5ba2\u6237\u7aef\u5de5\u4f5c\u6d41\u7a0b"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/jpeg/25438888/1644495854071-a320a8b5-85ba-4563-a2fa-5bd573af850c.jpeg",alt:null})),(0,a.kt)("h2",{id:"\u4e94\u53ef\u914d\u7f6e\u9879"},"\u4e94\u3001\u53ef\u914d\u7f6e\u9879"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u540d")),(0,a.kt)("th",{parentName:"tr",align:null},(0,a.kt)("strong",{parentName:"th"},"\u5c5e\u6027\u63cf\u8ff0")))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SetBufferLength"),(0,a.kt)("td",{parentName:"tr",align:null},"\u7f13\u5b58\u6c60\u5bb9\u91cf\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024*64\u3002")))),(0,a.kt)("p",null,"\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5c0f\uff0c\u5efa\u8bae10k\u5de6\u53f3\u7684\u503c\u3002\u66f4\u52a0\u8282\u7ea6\u5185\u5b58\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5927\uff0c\u4f8b\u5982\u6587\u4ef6\u4f20\u8f93\u7b49\uff0c\u5efa\u8bae64k\uff0c\u751a\u81f3\u66f4\u5927\u7684\u503c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u8be5\u503c\u867d\u7136\u65e0\u4e0a\u9650\uff0c\u4f46\u662f\u4e00\u822c\u4e0d\u8981\u8d85\u8fc71Mb\uff0c\u4e0d\u7136\u4e0d\u4ec5\u6ca1\u610f\u4e49\uff0c\u8fd8\u5f88\u6d6a\u8d39\n|\n| SetRemoteIPHost | \u94fe\u63a5\u5230\u7684\u8fdc\u7a0bIPHost\uff0c\u652f\u6301\u57df\u540d\u3002\u652f\u6301\u7c7b\u578b\uff1a"),(0,a.kt)("li",{parentName:"ol"},"\u4f7f\u7528IP&Port\uff0c\u4f20\u5165\u5f62\u5982\uff1a127.0.0.1:7789\u7684\u5b57\u7b26\u4e32\u5373\u53ef\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u4f7f\u7528\u57df\u540d\uff0c\u5fc5\u987b\u5305\u542b\u534f\u8bae\u7c7b\u578b\uff0c\u5f62\u5982\uff1a",(0,a.kt)("a",{parentName:"li",href:"http://baidu.com%E6%88%96%E8%80%85https://baidu.com:80"},"http://baidu.com\u6216\u8005https://baidu.com:80"),"\n|\n| SetReceiveType | \u63a5\u6536\u7c7b\u578b\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"AUTO\uff1a\u81ea\u52a8\u63a5\u6536\u6a21\u5f0f\u3002"),(0,a.kt)("li",{parentName:"ul"},"None\uff1a\u4e0d\u6295\u9012IO\u63a5\u6536\u7533\u8bf7\uff0c\u7528\u6237\u53ef\u901a\u8fc7GetStream\uff0c\u83b7\u53d6\u5230\u6d41\u4ee5\u540e\uff0c\u81ea\u5df1\u5904\u7406\u63a5\u6536\u3002\u6ce8\u610f\uff1a\u8fde\u63a5\u7aef\u4e0d\u4f1a\u611f\u77e5\u4e3b\u52a8\u65ad\u5f00\u3002\n|\n| UsePlugin | \u662f\u5426\u542f\u7528\u63d2\u4ef6\u3002\u5728\u542f\u7528\u65f6\u6216\u8bb8\u4f1a\u5e26\u6765\u4e00\u70b9\u70b9\u6027\u80fd\u635f\u8017\uff0c\u57fa\u672c\u4e0a\u4e0d\u662f\u5343\u4e07\u6570\u636e\u4ea4\u4e92\u6839\u672c\u4e0d\u503c\u4e00\u63d0\u3002 |\n| SetClientSslOption | Ssl\u914d\u7f6e\uff0c\u4e3aNull\u65f6\u5219\u4e0d\u542f\u7528\u3002\n\u6ce8\u610f\uff0c\u5f53RemoteIPHost\u4f7f\u7528https\u3001wss\u7684\u57df\u540d\u65f6\uff0c\u8be5\u914d\u7f6e\u4f1a\u4f7f\u7528\u7cfb\u7edf\u9ed8\u8ba4\u914d\u7f6e\u751f\u6548\u3002 |\n| SetKeepAliveValue | \u4e3aSocket\u8bbe\u7f6e\u7684\u5c5e\u6027\u3002\n\u6ce8\u610f\uff1a\u8be5\u914d\u7f6e\u4ec5\u5728window\u5e73\u53f0\u751f\u6548\u3002 |\n| SetBindIPHost | \u7ed1\u5b9a\u7aef\u53e3\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5728UdpSessionBase\u4e2d\u8868\u793a\u672c\u5730\u76d1\u542c\u5730\u5740"),(0,a.kt)("li",{parentName:"ul"},"\u5728TcpClient\u4e2d\u8868\u793a\u56fa\u5b9a\u5ba2\u6237\u7aef\u7aef\u53e3\u53f7\u3002\n|\n| SetMaxPackageSize | \u6570\u636e\u5305\u6700\u5927\u503c\uff0c\u9ed8\u8ba41024",(0,a.kt)("em",{parentName:"li"},"1024"),"10\u3002\u8be5\u503c\u4f1a\u5728\u9002\u5f53\u65f6\u95f4\uff0c\u76f4\u63a5\u4f5c\u7528\u4e8eDataHandlingAdapter.MaxPackageSize\u5c5e\u6027\u3002 |\n| UseNoDelay | \u8bbe\u7f6eSocket\u7684NoDelay\u5c5e\u6027\uff0c\u9ed8\u8ba4false\u3002 |\n| UseDelaySender | \u4f7f\u7528\u5ef6\u8fdf",(0,a.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/1f21a56ee75f896a5b5b38b37b071881#RL0kx"},"\u5ef6\u8fdf\u7f13\u5b58\u53d1\u9001"),"\u3002 |\n| UseReuseAddress | \u542f\u7528\u7aef\u53e3\u590d\u7528\u3002\u8be5\u914d\u7f6e\u53ef\u5728\u670d\u52a1\u5668\u3001\u6216\u5ba2\u6237\u7aef\u5728\u76d1\u542c\u7aef\u53e3\u65f6\uff0c\u8fd0\u884c\u76d1\u542c\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u53ef\u4ee5\u4e00\u5b9a\u7a0b\u5ea6\u7f13\u89e3\u7aef\u53e3\u6765\u4e0d\u53ca\u91ca\u653e\u7684\u95ee\u9898 |")),(0,a.kt)("h2",{id:"\u516d\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u670d\u52a1\u5668\u5747\u652f\u6301"},"\u516d\u3001\u652f\u6301\u63d2\u4ef6\u63a5\u53e3\u5ba2\u6237\u7aef\u3001\u670d\u52a1\u5668\u5747\u652f\u6301"),(0,a.kt)("p",null,"\u58f0\u660e\u81ea\u5b9a\u4e49\u5b9e\u4f8b\u7c7b\uff0c\u7136\u540e\u5b9e\u73b0",(0,a.kt)("strong",{parentName:"p"},"ITcpPlugin"),"\u63a5\u53e3\uff0c\u5373\u53ef\u5b9e\u73b0\u4e0b\u5217\u4e8b\u52a1\u7684\u89e6\u53d1\u3002\n\u6216\u8005\u7ee7\u627f\u81ea",(0,a.kt)("strong",{parentName:"p"},"TcpPluginBase"),"\u7c7b\uff0c\u91cd\u5199\u76f8\u5e94\u65b9\u6cd5\u5373\u53ef\u3002"),(0,a.kt)("p",null,"| ### ITcpPlugin\n| |\n| --- | --- |\n| OnConnected | \u5ba2\u6237\u7aef\u8fde\u63a5\u6210\u529f\u540e\u89e6\u53d1 |\n| OnConnecting | \u5728\u5373\u5c06\u5b8c\u6210\u8fde\u63a5\u65f6\u89e6\u53d1\u3002 |\n| OnDisconnected | \u4f1a\u8bdd\u65ad\u5f00\u540e\u89e6\u53d1 |\n| OnReceivedData | \u5728\u6536\u5230\u6570\u636e\u65f6\u89e6\u53d1 |\n| OnSendingData | \u5f53\u5373\u5c06\u53d1\u9001\u6570\u636e\u65f6\uff0c\u8c03\u7528\u8be5\u65b9\u6cd5\u5728\u9002\u914d\u5668\u4e4b\u540e\uff0c\u63a5\u4e0b\u6765\u5373\u4f1a\u53d1\u9001\u6570\u636e\u3002 |\n| OnIDChanged | \u5f53Client\u7684ID\u88ab\u66f4\u6539\u540e\u89e6\u53d1 |"),(0,a.kt)("h2",{id:"\u4e03\u521b\u5efatcpclient"},"\u4e03\u3001\u521b\u5efaTcpClient"),(0,a.kt)("p",null,"\u7b80\u5355\u7684\u5904\u7406\u903b\u8f91\u53ef\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"Connecting"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"Connected"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"Received"),"\u7b49\u59d4\u6258\u76f4\u63a5\u5b9e\u73b0\u3002"),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpClient tcpClient = new TcpClient();\ntcpClient.Connected += (client, e) => { };//\u6210\u529f\u8fde\u63a5\u5230\u670d\u52a1\u5668\ntcpClient.Disconnected += (client, e) => { };//\u4ece\u670d\u52a1\u5668\u65ad\u5f00\u8fde\u63a5\uff0c\u5f53\u8fde\u63a5\u4e0d\u6210\u529f\u65f6\u4e0d\u4f1a\u89e6\u53d1\u3002\ntcpClient.Received += (client, byteBlock, requestInfo) =>\n{\n //\u4ece\u670d\u52a1\u5668\u6536\u5230\u4fe1\u606f\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n Console.WriteLine($"\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n};\n\n//\u58f0\u660e\u914d\u7f6e\nTouchSocketConfig config = new TouchSocketConfig();\nconfig.SetRemoteIPHost(new IPHost("127.0.0.1:7789"))\n .UsePlugin();\n\n//\u8f7d\u5165\u914d\u7f6e\ntcpClient.Setup(config);\ntcpClient.Connect();\ntcpClient.Send("RRQM");\n')),(0,a.kt)("h2",{id:"\u516b\u63a5\u6536\u6570\u636e"},"\u516b\u3001\u63a5\u6536\u6570\u636e"),(0,a.kt)("p",null,"\u5728TcpClient\u4e2d\uff0c\u63a5\u6536\u6570\u636e\u7684\u65b9\u5f0f\u6709\u5f88\u591a\u79cd\u3002\u591a\u79cd\u65b9\u5f0f\u53ef\u4ee5\u7ec4\u5408\u4f7f\u7528\u3002"),(0,a.kt)("h4",{id:"81-received\u59d4\u6258\u5904\u7406"},"8.1 Received\u59d4\u6258\u5904\u7406"),(0,a.kt)("p",null,"\u5f53\u4f7f\u7528TcpClient\u521b\u5efa\u5ba2\u6237\u7aef\u65f6\uff0c\u5185\u90e8\u5df2\u7ecf\u5b9a\u4e49\u597d\u4e86\u4e00\u4e2a\u5916\u7f6e\u59d4\u6258Received\uff0c\u53ef\u4ee5\u901a\u8fc7\u8be5\u59d4\u6258\u76f4\u63a5\u63a5\u6536\u6570\u636e\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpClient tcpClient = new TcpClient();\ntcpClient.Received += (client, byteBlock, requestInfo) =>\n{\n //\u4ece\u670d\u52a1\u5668\u6536\u5230\u4fe1\u606f\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n Console.WriteLine($"\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n};\n\n//\u58f0\u660e\u914d\u7f6e\nTouchSocketConfig config = new TouchSocketConfig();\nconfig.SetRemoteIPHost(new IPHost("127.0.0.1:7789"))\n .UsePlugin();\n\n//\u8f7d\u5165\u914d\u7f6e\ntcpClient.Setup(config);\ntcpClient.Connect();\n')),(0,a.kt)("h4",{id:"82-\u63d2\u4ef6\u5904\u7406\u63a8\u8350"},"8.2 \u63d2\u4ef6\u5904\u7406\u63a8\u8350"),(0,a.kt)("p",null,"\u6309\u7167TouchSocket\u7684\u8bbe\u8ba1\u7406\u5ff5\uff0c\u4f7f\u7528\u63d2\u4ef6\u5904\u7406\u6570\u636e\uff0c\u662f\u4e00\u9879\u975e\u5e38\u7b80\u5355\uff0c\u4e14\u9ad8\u5ea6\u89e3\u8026\u7684\u65b9\u5f0f\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u914d\u7f6e\u542f\u7528\u63d2\u4ef6\uff08UsePlugin\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u65b0\u5efa\u63d2\u4ef6\u7c7b"),(0,a.kt)("li",{parentName:"ol"},"\u6dfb\u52a0\u63d2\u4ef6")),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a\n\uff081\uff09\u58f0\u660e\u63d2\u4ef6"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public class MyPlugin : TcpPluginBase<TcpClient>\n{\n public MyPlugin()\n {\n this.Order = 0;//\u6b64\u503c\u8868\u793a\u63d2\u4ef6\u7684\u6267\u884c\u987a\u5e8f\uff0c\u5f53\u591a\u4e2a\u63d2\u4ef6\u5e76\u5b58\u65f6\uff0c\u8be5\u503c\u8d8a\u5927\uff0c\u8d8a\u5728\u524d\u6267\u884c\u3002\n }\n \n protected override void OnReceivedData(TcpClient client, ReceivedDataEventArgs e)\n {\n //\u8fd9\u91cc\u5904\u7406\u6570\u636e\u63a5\u6536\n //\u6839\u636e\u9002\u914d\u5668\u7c7b\u578b\uff0ce.ByteBlock\u4e0ee.RequestInfo\u4f1a\u5448\u73b0\u4e0d\u540c\u7684\u503c\uff0c\u5177\u4f53\u770b\u6587\u6863=\u300b\u9002\u914d\u5668\u90e8\u5206\u3002\n ByteBlock byteBlock = e.ByteBlock;\n IRequestInfo requestInfo = e.RequestInfo;\n\n //e.Handled = true;//\u8868\u793a\u8be5\u6570\u636e\u5df2\u7ecf\u88ab\u672c\u63d2\u4ef6\u5904\u7406\uff0c\u65e0\u9700\u518d\u6295\u9012\u5230\u5176\u4ed6\u63d2\u4ef6\u3002\n base.OnReceivedData(client, e);\n }\n}\n")),(0,a.kt)("p",null,"\uff082\uff09\u521b\u5efa\u4f7f\u7528\u63d2\u4ef6\u5904\u7406\u7684\u5ba2\u6237\u7aef"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpClient client = new TcpClient();\nclient.Setup(new TouchSocketConfig()\n .SetRemoteIPHost(new IPHost("127.0.0.1:7789"))\n .UsePlugin()\n .ConfigureContainer(a=>\n {\n a.AddConsoleLogger();\n })\n .ConfigurePlugins(a => \n {\n a.Add<MyPlugin>();\n }))\n .Connect();\n')),(0,a.kt)("h2",{id:"\u4e5d\u53d1\u9001\u6570\u636e"},"\u4e5d\u3001\u53d1\u9001\u6570\u636e"),(0,a.kt)("p",null,"\u3010\u540c\u6b65\u53d1\u9001\u3011\nTcpClient\u5df2\u7ecf\u5185\u7f6e\u4e86\u4e09\u79cd\u540c\u6b65\u53d1\u9001\u65b9\u6cd5\uff0c\u76f4\u63a5\u8c03\u7528\u5c31\u53ef\u4ee5\u53d1\u9001\uff0c\u4f46\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u901a\u8fc7\u8be5\u65b9\u6cd5\u53d1\u9001\u7684\u6570\u636e\uff0c\u4f1a\u7ecf\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u9002\u914d\u5668"),"\uff0c\u5982\u679c\u60f3\u8981\u76f4\u63a5\u53d1\u9001\uff0c\u8bf7\u4f7f\u7528",(0,a.kt)("strong",{parentName:"p"},"DefaultSend"),"\u3002\u5982\u679c\u53d1\u9001\u5931\u8d25\uff0c\u5219\u4f1a\u7acb\u5373\u629b\u51fa\u5f02\u5e38\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual void Send(byte[] buffer);\npublic virtual void Send(ByteBlock byteBlock);\npublic virtual void Send(byte[] buffer, int offset, int length);\n")),(0,a.kt)("p",null,"\u3010\u5f02\u6b65\u53d1\u9001\u3011\nTcpClient\u5df2\u7ecf\u5185\u7f6e\u4e86\u4e09\u79cd\u5f02\u6b65\u53d1\u9001\u65b9\u6cd5\uff0c\u76f4\u63a5\u8c03\u7528\u5c31\u53ef\u4ee5\u53d1\u9001\u3002\u5982\u679c\u53d1\u9001\u5931\u8d25\uff0cawait\u5c31\u4f1a\u89e6\u53d1\u5f02\u5e38\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual Task SendAsync(byte[] buffer);\npublic virtual Task SendAsync(byte[] buffer, int offset, int length);\n")))}s.isMDXComponent=!0}}]);
\ No newline at end of file
此差异已折叠。
(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[525],{5525:()=>{}}]);
\ No newline at end of file
(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5525],{5525:()=>{}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8782],{3905:(t,n,a)=>{a.d(n,{Zo:()=>m,kt:()=>N});var e=a(7294);function l(t,n,a){return n in t?Object.defineProperty(t,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[n]=a,t}function r(t,n){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),a.push.apply(a,e)}return a}function p(t){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?r(Object(a),!0).forEach((function(n){l(t,n,a[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(a,n))}))}return t}function i(t,n){if(null==t)return{};var a,e,l=function(t,n){if(null==t)return{};var a,e,l={},r=Object.keys(t);for(e=0;e<r.length;e++)a=r[e],n.indexOf(a)>=0||(l[a]=t[a]);return l}(t,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(e=0;e<r.length;e++)a=r[e],n.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var d=e.createContext({}),u=function(t){var n=e.useContext(d),a=n;return t&&(a="function"==typeof t?t(n):p(p({},n),t)),a},m=function(t){var n=u(t.components);return e.createElement(d.Provider,{value:n},t.children)},k={inlineCode:"code",wrapper:function(t){var n=t.children;return e.createElement(e.Fragment,{},n)}},g=e.forwardRef((function(t,n){var a=t.components,l=t.mdxType,r=t.originalType,d=t.parentName,m=i(t,["components","mdxType","originalType","parentName"]),g=u(a),N=l,o=g["".concat(d,".").concat(N)]||g[N]||k[N]||r;return a?e.createElement(o,p(p({ref:n},m),{},{components:a})):e.createElement(o,p({ref:n},m))}));function N(t,n){var a=arguments,l=n&&n.mdxType;if("string"==typeof t||l){var r=a.length,p=new Array(r);p[0]=g;var i={};for(var d in n)hasOwnProperty.call(n,d)&&(i[d]=n[d]);i.originalType=t,i.mdxType="string"==typeof t?t:l,p[1]=i;for(var u=2;u<r;u++)p[u]=a[u];return e.createElement.apply(null,p)}return e.createElement.apply(null,a)}g.displayName="MDXCreateElement"},2932:(t,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>p,default:()=>k,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var e=a(7462),l=(a(7294),a(3905));const r={id:"transmitbigdata",sidebar_position:3,title:"\u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e",sidebar_label:"7.3 \u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e"},p=void 0,i={unversionedId:"07\u3001Udp\u7ec4\u4ef6/transmitbigdata",id:"07\u3001Udp\u7ec4\u4ef6/transmitbigdata",title:"\u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e",description:"\u8bf4\u660e",source:"@site/docs/07\u3001Udp\u7ec4\u4ef6/7.3 \u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e.mdx",sourceDirName:"07\u3001Udp\u7ec4\u4ef6",slug:"/07\u3001Udp\u7ec4\u4ef6/transmitbigdata",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/transmitbigdata",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/07\u3001Udp\u7ec4\u4ef6/7.3 \u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{id:"transmitbigdata",sidebar_position:3,title:"\u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e",sidebar_label:"7.3 \u4f20\u8f93\u5927\u4e8e64K\u7684\u6570\u636e"},sidebar:"tutorialSidebar",previous:{title:"7.2 \u521b\u5efaUdpSession",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/createudpsession"},next:{title:"7.4 \u7ec4\u64ad\u3001\u5e7f\u64ad",permalink:"/touchsocket/docs/07\u3001Udp\u7ec4\u4ef6/usebroadcast"}},d={},u=[{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2},{value:"\u539f\u7406",id:"\u539f\u7406",level:2},{value:"\u6570\u636e\u683c\u5f0f",id:"\u6570\u636e\u683c\u5f0f",level:2}],m={toc:u};function k(t){let{components:n,...a}=t;return(0,l.kt)("wrapper",(0,e.Z)({},m,a,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,l.kt)("p",null,"UDP\u7531\u4e8e\u81ea\u8eab\u9650\u5236\uff0c\u6bcf\u6b21\u53d1\u9001\u7684\u6570\u636e\u5305\u6700\u5927\u7ea664K\uff0c\u4f46\u662f\u5728\u5c40\u57df\u7f51\u5185\uff0c\u6709\u65f6\u5019\u5e0c\u671b\u4f20\u8f93\u66f4\u5927\u7684\u6570\u636e\u3002\u6240\u4ee5\u5fc5\u987b\u6709\u7b56\u7565\u53d1\u9001\u3002"),(0,l.kt)("p",null,"TouchSocket\u53ef\u901a\u8fc7\u7b80\u5355\u8bbe\u7f6e\uff0c\u5b9e\u73b0\u8be5\u529f\u80fd\u3002"),(0,l.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,l.kt)("p",null,"\u53ea\u9700\u8981\u5728\u914d\u7f6e\u4e2d\uff0c\u8bbe\u7f6e\u5176\u9002\u914d\u5668\u4e3a",(0,l.kt)("strong",{parentName:"p"},"UdpPackageAdapter"),"\u7c7b\u578b\u5373\u53ef\uff08\u9ed8\u8ba4\u4e3a",(0,l.kt)("strong",{parentName:"p"},"NormalUdpDataHandlingAdapter"),"\uff09\u3002\u540c\u65f6\u53ef\u4ee5\u6839\u636e\u4f20\u8f93\u6570\u636e\u7684\u5927\u5c0f\uff0c\u4fee\u6539\u76f8\u5173\u5c5e\u6027\uff0c\u5982\uff1a",(0,l.kt)("strong",{parentName:"p"},"MTU"),"\uff0c",(0,l.kt)("strong",{parentName:"p"},"Timeout"),"\u7b49\u3002"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},(0,l.kt)("strong",{parentName:"em"},"\u6b64\u6a21\u5f0f\u4e0b\uff0c\u53d1\u9001\u7aef\u4e0e\u63a5\u6536\u7aef\u5747\u5fc5\u987b\u4e3aTouchSocket\uff08\u6216\u5b9e\u73b0\u76f8\u540c\u7b97\u6cd5\uff09\uff0c\u4e14\u4e3a\u76f8\u540c\u8bbe\u7f6e\u3002"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-csharp"},'UdpSession udpSession = new UdpSession();\nudpSession.Received += (endpoint, byteBlock, requestInfo) =>\n{\n\n};\n\nudpSession.Setup(new TouchSocketConfig()\n .SetBindIPHost(new IPHost($"127.0.0.1:7789"))\n .SetUdpDataHandlingAdapter(()=> new UdpPackageAdapter()));//\u52a0\u8f7d\u914d\u7f6e\nudpSession.Start();//\u542f\u52a8\n')),(0,l.kt)("h2",{id:"\u539f\u7406"},"\u539f\u7406"),(0,l.kt)("p",null,"\u5728\u53d1\u9001\u65f6\uff0c\u4f1a\u5c06\u8981\u53d1\u9001\u7684\u6570\u636e\u5206\u5272\u6210MTU\u957f\u5ea6\u7684\u6570\u636e\u3002\u7136\u540e\u4e3a\u5176\u7f16\u53f7\uff0c\u7136\u540e\u53d1\u9001\uff0c\u6700\u540e\u7531\u63a5\u6536\u65b9\u91cd\u7ec4\u3002"),(0,l.kt)("h2",{id:"\u6570\u636e\u683c\u5f0f"},"\u6570\u636e\u683c\u5f0f"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"ID\uff1a\u7531\u96ea\u82b1\u7b97\u6cd5\u751f\u6210\uff0c\u5728\u5e76\u53d1\u8bf7\u6c42\u65f61\u6beb\u79d2\u4e2d\u6709400w\u5206\u4e4b\u4e00\u7684\u6982\u7387\u53d1\u751fID\u91cd\u590d\u3002\u4f46\u57fa\u672c\u53ef\u4ee5\u5ffd\u7565\u4e0d\u8ba1\u3002")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Bit"),(0,l.kt)("th",{parentName:"tr",align:null},"\u8bf4\u660e"),(0,l.kt)("th",{parentName:"tr",align:null},"7"),(0,l.kt)("th",{parentName:"tr",align:null},"6"),(0,l.kt)("th",{parentName:"tr",align:null},"5"),(0,l.kt)("th",{parentName:"tr",align:null},"4"),(0,l.kt)("th",{parentName:"tr",align:null},"3"),(0,l.kt)("th",{parentName:"tr",align:null},"2"),(0,l.kt)("th",{parentName:"tr",align:null},"1"),(0,l.kt)("th",{parentName:"tr",align:null},"0"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"\u534f\u8bae\u540d"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte1"),(0,l.kt)("td",{parentName:"tr",align:null},"PackageID\u4e3along\u7c7b\u578b\uff0c\u5360\u75288\u5b57\u8282\uff0c\u6807\u8bc6\u6570\u636e\u5305\u552f\u4e00\u6027\u3002"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte2"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte3"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte4"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte5"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte6"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte7"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte8"),(0,l.kt)("td",{parentName:"tr",align:null},"SN\u4e3aUshort\u53602\u5b57\u8282\uff0c\u6807\u8bc6\u5e27\u5e8f"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte9"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte10"),(0,l.kt)("td",{parentName:"tr",align:null},"flag\uff0c\u53601\u5b57\u8282\uff0c\u6700\u9ad8\u4f4d\u6807\u8bc6\u662f\u5426\u4e3a\u7ed3\u675f\uff0c\u5176\u4ed6\u4f4d\u4fdd\u7559\u3002"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte\uff1f"),(0,l.kt)("td",{parentName:"tr",align:null},"\u6709\u6548\u8f7d\u8377\u6570\u636e"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte^2"),(0,l.kt)("td",{parentName:"tr",align:null},"\u5f53\u4e0d\u4e3a\u7ec8\u7ed3\u5e27\u65f6\uff0c\u6b64\u5904\u4ecd\u7136\u4e3a\u8f7d\u8377\u6570\u636e\u3002\u5f53\u662f\u7ec8\u7ed3\u5e27\u65f6\uff0c\u5012\u6570\u4e24\u4e2a\u5b57\u8282\u4e3aCrc16\u6821\u9a8c\u3002"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"byte^1"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})))))}k.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[390],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[2362],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[230],{2776:s=>{s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[969],{2776:s=>{s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[987],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7978],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册