ibcadmin 发表于 2019-12-26 09:06:24

【Unity】关于UDP 客户端不能先给服务器发消息的问题

<p>刚开始碰到这个题目时有点懵,UDP为什么尚有分启动次序?看一下我碰到的错误:</p>
<ol>
<li>先启动serevr,再启动client,两边不管谁先发消息,<strong>正常</strong>;</li>
<li>先启动server,再启动client,之后关闭client,不关闭server,重新再启动client,client先发消息非常,</li>
<li>先启动client,再启动server,client先发消息,同样报上面的错误;</li>
</ol>
<p>细致查抄了代码之后,发现ClientEnd的IP端口都是0,哦!我原来在和假地点交换。</p>
<p>接着就查找其为什么是0,发现server创建好时间的问候(发消息创建通讯),client还在睡觉(还没有启动) 然后就找度娘搜索答案,发现改Hosts大概IP都试了似乎没什么用处,SO就想办法怎么可以或许让client起床(启动)之前,server不停叫它呢(实验创建通讯)?由于才打仗UDP,我这里想到的是一个笨方法,大牛可以略过,热心的话可以教一下萌新更高效的办法,非常感谢。</p>
<p>本人管理办法:</p>
<p>起首要明确只是Client向Server发消息会出现这些题目,Server向Client发送消息完全没题目。</p>
<p><strong>UDP不毗连单发消息是不会有题目的。重载server的send方法,发送特殊标记(项目中肯定用不到的字符)到client,判定client是否吸取了,如果继承返回标记到server,改变发送状态。断线亦是云云。</strong></p>
<p><strong>Server:</strong></p>
<p><strong></strong></p>
<p></p>
<p>检测写在Receive();</p>
<p></p>
<p> </p>
<p>Client:</p>
<p></p>
<p> </p>
<p></p>
页: [1]
查看完整版本: 【Unity】关于UDP 客户端不能先给服务器发消息的问题