{"id":2432,"date":"2022-09-27T00:27:09","date_gmt":"2022-09-26T16:27:09","guid":{"rendered":"https:\/\/lonelinerd.com\/?p=2432"},"modified":"2022-10-16T22:08:28","modified_gmt":"2022-10-16T14:08:28","slug":"u3d-net-3","status":"publish","type":"post","link":"https:\/\/lonelinerd.com\/index.php\/2022\/09\/27\/u3d-net-3\/","title":{"rendered":"\u300aUnity3D\u7db2\u7d61\u904a\u6232\u5be6\u8e10\u300b\uff08\u7b2c2\u7248\uff09\u8981\u9ede\u6458\u9304 &#8211; \u300c\u901a\u4fe1\u5354\u8b70\u8207\u6d88\u606f\u968a\u5217\u57fa\u790e\u300d"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2432\" class=\"elementor elementor-2432\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-470bd4c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"470bd4c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4aed322\" data-id=\"4aed322\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0d489af elementor-widget elementor-widget-text-editor\" data-id=\"0d489af\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p><b>\u66f8\u540d\uff1a<\/b><strong>\u300aUnity3D\u7db2\u7d61\u904a\u6232\u5be6\u8e10\u300b\uff08\u7b2c2\u7248\uff09<\/strong><\/p><p><strong>\u4f5c\u8005\uff1a\u7f85\u57f9\u7fbd<\/strong><\/p><p>\u6240\u8b80\u7248\u672c\uff1a\u6a5f\u68b0\u5de5\u696d\u51fa\u7248\u793e<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c0eb31e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c0eb31e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9d91b6a\" data-id=\"9d91b6a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2e48741 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"2e48741\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-73383bc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"73383bc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3a622cc\" data-id=\"3a622cc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ac712ad elementor-widget elementor-widget-text-editor\" data-id=\"ac712ad\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4 class=\"md-end-block md-heading\"><span style=\"text-decoration: underline;\"><strong><span class=\"md-plain\">\u901a\u4fe1\u5354\u8b70\u8207\u6d88\u606f\u968a\u5217<\/span><\/strong><\/span><\/h4><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u901a\u4fe1\u5354\u8b70<\/span><\/span><\/span><span class=\"md-plain\">\uff1a\u628a<\/span><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u5354\u8b70\u540d\u3001\u5ba2\u6236\u7aef\u6a19\u8b58\u3001\u5177\u9ad4\u53c3\u6578\u7d44\u6210\u4e00\u500b\u56fa\u5b9a\u683c\u5f0f\u7684\u5b57\u7b26\u4e32<\/span><\/span><\/span><span class=\"md-plain\">\uff0c\u5728\u670d\u52d9\u7aef\u548c\u5ba2\u6236\u7aef\u4e4b\u9593\u50b3\u8f38\uff0c\u518d<\/span><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u6839\u64da\u5354\u8b70\u683c\u5f0f\u89e3\u6790\u51fa\u6578\u64da\u4f7f\u7528\/\u8f49\u767c<\/span><\/span><\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5982\uff1a\u6d88\u606f\u540d|\u5ba2\u6236\u7aefIP\u8207\u7aef\u53e3, \u53c3\u65781, \u53c3\u65782, \u53c3\u6578n<\/span><\/p><\/li><\/ul><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u6d88\u606f\u968a\u5217<\/span><\/span><\/span><span class=\"md-plain\">\uff1a<\/span><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u5728Unity\u88e1\u53ea\u6709\u4e3b\u7dda\u7a0b\u53ef\u4ee5\u64cd\u4f5cUI\u7d44\u4ef6<\/span><\/span><\/span><span class=\"md-plain\">\uff0c\u591a\u7dda\u7a0b\u6d88\u606f\u8655\u7406\u5bb9\u6613\u5c0e\u81f4\u5404\u7a2e\u5947\u602a\u7684\u6df7\u4e82\uff0c\u56e0\u6b64\u53ef\u4ee5<\/span><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u4f7f\u7528\u6d88\u606f\u968a\u5217\u8b93\u4e3b\u7dda\u7a0b\u53bb\u8655\u7406Socket\u7570\u6b65\u63a5\u6536\u5230\u7684\u4fe1\u606f<\/span><\/span><\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">C#\u7570\u6b65\u901a\u4fe1\u7531\u7dda\u7a0b\u6c60\u5be6\u73fe\uff0c<\/span><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u4e0d\u540c\u7684BeginReceive\u4e0d\u4e00\u5b9a\u5728\u540c\u4e00\u7dda\u7a0b\u4e2d\u57f7\u884c<\/span><\/span><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">\u5275\u5efa\u4e00\u500b\u7531\u4e3b\u7dda\u7a0b\u8b80\u53d6\u7684\u6d88\u606f\u5217\u8868\uff0c<\/span><span class=\"md-html-inline\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u6bcf\u7576\u6536\u5230\u6d88\u606f\u4fbf\u5728\u5217\u8868\u672b\u7aef\u6dfb\u52a0\u6578\u64da<\/span><\/span><\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-html-inline md-expand\" spellcheck=\"false\"><span style=\"color: red;\"><span class=\"md-plain\">\u6578\u64da\u5f9e\u9802\u7aef\u8b80\u53d6\uff0c\u8b80\u53d6\u8655\u7406\u5f8c\u5c07\u5176\u5f9e\u9802\u7aef\u79fb\u9664<\/span><\/span><\/span><\/p><\/li><\/ul><\/li><\/ul><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ff2d895 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ff2d895\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-eae8d37\" data-id=\"eae8d37\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f766d46 elementor-widget elementor-widget-image\" data-id=\"f766d46\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"809\" height=\"561\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2022\/09\/Ch3_1.png\" class=\"attachment-large size-large wp-image-2434\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2022\/09\/Ch3_1.png 809w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2022\/09\/Ch3_1-300x208.png 300w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2022\/09\/Ch3_1-768x533.png 768w\" sizes=\"auto, (max-width: 809px) 100vw, 809px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-44747f3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"44747f3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a70ecd9\" data-id=\"a70ecd9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d65c124 elementor-widget elementor-widget-text-editor\" data-id=\"d65c124\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item md-focus-container\"><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded md-focus\" lang=\"C#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">NetManager<\/span> {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable\">Socket<\/span> <span class=\"cm-variable\">socket<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u63a5\u6536\u7de9\u6c96\u5340<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable-3\">byte<\/span>[] <span class=\"cm-variable\">readBuff<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable-3\">byte<\/span>[<span class=\"cm-number\">1024<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u59d4\u6258\u985e\u578b<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">delegate<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">MsgListener<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">str<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u76e3\u807d\u5217\u8868\uff08\u5404\u500b\u6d88\u606f\u540d\u5c0d\u61c9\u7684\u8655\u7406\u65b9\u6cd5\uff09<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">private<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable\">Dictionary<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable-3\">string<\/span>, <span class=\"cm-variable\">MsgListener<\/span><span class=\"cm-operator\">&gt;<\/span> <span class=\"cm-variable\">listeners<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">Dictionary<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable-3\">string<\/span>, <span class=\"cm-variable\">MsgListener<\/span><span class=\"cm-operator\">&gt;<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6d88\u606f\u968a\u5217<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">static<\/span> <span class=\"cm-variable\">List<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable-3\">string<\/span><span class=\"cm-operator\">&gt;<\/span> <span class=\"cm-variable\">msgList<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">List<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable-3\">string<\/span><span class=\"cm-operator\">&gt;<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u8a18\u9304\u6d88\u606f\u5c0d\u61c9\u7684\u8655\u7406\u65b9\u6cd5<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">AddListener<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">msgName<\/span>, <span class=\"cm-variable\">MsgListener<\/span> <span class=\"cm-variable\">listener<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">listeners<\/span>[<span class=\"cm-variable\">msgName<\/span>] <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">listener<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Connect<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">ip<\/span>, <span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">port<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">socket<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">Socket<\/span>(<span class=\"cm-variable\">AddressFamily<\/span>.<span class=\"cm-variable\">InterNetwork<\/span>, <span class=\"cm-variable\">SocketType<\/span>.<span class=\"cm-variable\">Stream<\/span>, <span class=\"cm-variable\">ProtocolType<\/span>.<span class=\"cm-variable\">Tcp<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">socket<\/span>.<span class=\"cm-variable\">Connect<\/span>(<span class=\"cm-variable\">ip<\/span>, <span class=\"cm-variable\">port<\/span>); <span class=\"cm-comment\">\/\/\u540c\u6b65\u9023\u63a5<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">socket<\/span>.<span class=\"cm-variable\">BeginReceive<\/span>(<span class=\"cm-variable\">readBuff<\/span>, <span class=\"cm-number\">0<\/span>, <span class=\"cm-number\">1024<\/span>, <span class=\"cm-number\">0<\/span>, <span class=\"cm-variable\">ReceiveCallback<\/span>, <span class=\"cm-variable\">socket<\/span>); <span class=\"cm-comment\">\/\/\u7570\u6b65\u63a5\u6536\u4fe1\u606f<\/span><\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">static<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">ReceiveCallback<\/span>(<span class=\"cm-variable\">IAsyncResult<\/span> <span class=\"cm-variable\">ar<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">try<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Socket<\/span> <span class=\"cm-variable\">socket<\/span> <span class=\"cm-operator\">=<\/span> (<span class=\"cm-variable\">Socket<\/span>)<span class=\"cm-variable\">ar<\/span>.<span class=\"cm-variable\">AsyncState<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">count<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">socket<\/span>.<span class=\"cm-variable\">EndReceive<\/span>(<span class=\"cm-variable\">ar<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">recvStr<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">System<\/span>.<span class=\"cm-variable\">Text<\/span>.<span class=\"cm-variable\">Encoding<\/span>.<span class=\"cm-variable\">UTF8<\/span>.<span class=\"cm-variable\">GetString<\/span>(<span class=\"cm-variable\">readBuff<\/span>, <span class=\"cm-number\">0<\/span>, <span class=\"cm-variable\">count<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6d88\u606f\u968a\u5217\u66f4\u65b0<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">msgList<\/span>.<span class=\"cm-variable\">Add<\/span>(<span class=\"cm-variable\">recvStr<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">socket<\/span>.<span class=\"cm-variable\">BeginReceive<\/span>(<span class=\"cm-variable\">readBuff<\/span>, <span class=\"cm-number\">0<\/span>, <span class=\"cm-number\">1024<\/span>, <span class=\"cm-number\">0<\/span>, <span class=\"cm-variable\">ReceiveCallback<\/span>, <span class=\"cm-variable\">socket<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">catch<\/span>(<span class=\"cm-variable\">SocketException<\/span> <span class=\"cm-variable\">ex<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">Debug<\/span>.<span class=\"cm-variable\">Log<\/span>(<span class=\"cm-string\">\"Socket Receive Failed: \"<\/span> <span class=\"cm-operator\">+<\/span> <span class=\"cm-variable\">ex<\/span>.<span class=\"cm-variable\">ToString<\/span>());<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Send<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">sendStr<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">socket<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-atom\">null<\/span>) { <span class=\"cm-keyword\">return<\/span>; }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-operator\">!<\/span><span class=\"cm-variable\">socket<\/span>.<span class=\"cm-variable\">Connected<\/span>) { <span class=\"cm-keyword\">return<\/span>; }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u540c\u6b65\u767c\u9001<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">byte<\/span>[] <span class=\"cm-variable\">sendBytes<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">System<\/span>.<span class=\"cm-variable\">Text<\/span>.<span class=\"cm-variable\">Encoding<\/span>.<span class=\"cm-variable\">UTF8<\/span>.<span class=\"cm-variable\">GetBytes<\/span>(<span class=\"cm-variable\">sendStr<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">socket<\/span>.<span class=\"cm-variable\">Send<\/span>(<span class=\"cm-variable\">sendBytes<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u6bcf\u5e40\u66f4\u65b0\uff0c\u6301\u7e8c\u8655\u7406\u6d88\u606f\u968a\u5217\u4e2d\u7684\u6d88\u606f<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">static<\/span> <span class=\"cm-keyword\">void<\/span> <span class=\"cm-variable\">Update<\/span>()<\/span><br \/><span role=\"presentation\"> \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">msgList<\/span>.<span class=\"cm-variable\">Count<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-number\">0<\/span>) { <span class=\"cm-keyword\">return<\/span>; }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">msgStr<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">msgList<\/span>[<span class=\"cm-number\">0<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">msgList<\/span>.<span class=\"cm-variable\">RemoveAt<\/span>(<span class=\"cm-number\">0<\/span>);<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">string<\/span>[] <span class=\"cm-variable\">split<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">msgStr<\/span>.<span class=\"cm-variable\">Split<\/span>(<span class=\"cm-string\">'|'<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">msgName<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">split<\/span>[<span class=\"cm-number\">0<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">msgArgs<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">split<\/span>[<span class=\"cm-number\">1<\/span>];<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span> (<span class=\"cm-variable\">listeners<\/span>.<span class=\"cm-variable\">ContainsKey<\/span>(<span class=\"cm-variable\">msgName<\/span>))<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">listeners<\/span>[<span class=\"cm-variable\">msgName<\/span>](<span class=\"cm-variable\">msgArgs<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u66f8\u540d\uff1a\u300aUnity3D\u7db2\u7d61\u904a\u6232\u5be6\u8e10\u300b\uff08\u7b2c2\u7248\uff09\u4f5c\u8005\uff1a\u7f85\u57f9\u7fbd \u6240\u8b80\u7248\u672c\uff1a\u6a5f\u68b0\u5de5\u696d\u51fa\u7248\u793e<\/p>\n","protected":false},"author":1,"featured_media":947,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,18,25],"tags":[],"class_list":["post-2432","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-reading-notes","category-developing","category-u3d-net"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/03\/FeatureCover_ReadingNotes.png","_links":{"self":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/2432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/comments?post=2432"}],"version-history":[{"count":5,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/2432\/revisions"}],"predecessor-version":[{"id":2438,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/2432\/revisions\/2438"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media\/947"}],"wp:attachment":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media?parent=2432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/categories?post=2432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/tags?post=2432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}