请选择 进入手机版 | 继续访问电脑版

马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#问题入口 ASP.NET问题入口

【C#问题提交】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接毕业设计】 面试-葵花宝典下载

官方一群:

官方二群:

查看: 689|回复: 16

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

  [复制链接]
  • TA的每日心情
    开心
    半小时前
  • 签到天数: 1654 天

    [LV.Master]伴坛终老

    4251

    主题

    6180

    帖子

    11万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    113774

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-12-26 09:06:24 | 显示全部楼层 |阅读模式

    马上加入IBC,查看更多教程

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    刚开始碰到这个题目时有点懵,UDP为什么尚有分启动次序?看一下我碰到的错误:

    1. 先启动serevr,再启动client,两边不管谁先发消息,正常
    2. 先启动server,再启动client,之后关闭client,不关闭server,重新再启动client,client先发消息非常,
      090943xh33hhcrauuuy0fz.png
    3. 先启动client,再启动server,client先发消息,同样报上面的错误;

    细致查抄了代码之后,发现ClientEnd的IP端口都是0,哦!我原来在和假地点交换。

    090944cswtkppwjyuyswv6.png

    接着就查找其为什么是0,发现server创建好时间的问候(发消息创建通讯),client还在睡觉(还没有启动) 然后就找度娘搜索答案,发现改Hosts大概IP都试了似乎没什么用处,SO就想办法怎么可以或许让client起床(启动)之前,server不停叫它呢(实验创建通讯)?由于才打仗UDP,我这里想到的是一个笨方法,大牛可以略过,热心的话可以教一下萌新更高效的办法,非常感谢。

    本人管理办法:

    起首要明确只是Client向Server发消息会出现这些题目,Server向Client发送消息完全没题目。

    UDP不毗连单发消息是不会有题目的。重载server的send方法,发送特殊标记(项目中肯定用不到的字符)到client,判定client是否吸取了,如果继承返回标记到server,改变发送状态。断线亦是云云。

    Server:

    090944v1q24tyxtrt7oo1x.png

    090945krxpa0p4illlen6e.png

    检测写在Receive();

    090945a9nxxx292s13bmmk.png

    Client:

    090946jarzzjxpqvxqvwvr.png

    090947nr9vrvptg7zq4v92.png

    C#论坛 www.ibcibc.com IBC编程社区
    C#
    C#论坛
    IBC编程社区
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则