刚开始遇到这个问题时有点懵,udp为什么还有分启动顺序?看一下我遇到的错误:
仔细检查了代码之后,发现clientend的ip端口都是0,哦!我原来在和假地址交流。
接着就查找其为什么是0,发现server建立好时候的问候(发消息建立通讯),client还在睡觉(还没有启动) 然后就找度娘搜索答案,发现改hosts或者ip都试了好像没什么用处,so就想办法怎么能够让client起床(启动)之前,server一直叫它呢(尝试建立通讯)?由于才接触udp,我这里想到的是一个笨方法,大牛可以略过,热心的话可以教一下萌新更高效的办法,十分感谢。
本人解决办法:
首先要明白只是client向server发消息会出现这些问题,server向client发送消息完全没问题。
udp不连接单发消息是不会有问题的。重载server的send方法,发送特殊标记(项目中一定用不到的字符)到client,判断client是否接收了,如果接受返回标记到server,改变发送状态。断线亦是如此。
server:
检测写在receive();
client:
如对本文有疑问, 点击进行留言回复!!
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
网友评论