社区
C#
帖子详情
UDP多个客户端接收信息问题
weixin_43923132
2019-01-22 02:07:59
Socket实现的UDP服务器与客户端,当把多个客户端写在一个程序中的时候,可以正常的给服务端发送信息,服务端也能接收到。当服务器给客户端发送消息时,有的客户端就接收不到,例如:有10个客户端的时候,通常会有一到两个接收不到,重新启动服务端客户端后还是会出现这种情况。接收不到信息的客户端还不是固定的。
...全文
769
11
打赏
收藏
UDP多个客户端接收信息问题
Socket实现的UDP服务器与客户端,当把多个客户端写在一个程序中的时候,可以正常的给服务端发送信息,服务端也能接收到。当服务器给客户端发送消息时,有的客户端就接收不到,例如:有10个客户端的时候,通常会有一到两个接收不到,重新启动服务端客户端后还是会出现这种情况。接收不到信息的客户端还不是固定的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sp1234_maJia
2019-01-22
打赏
举报
回复
引用 5 楼 weixin_43923132 的回复:
接收不到信息的那个端口,重发多次信息,还是会接收不到
UDP 不可能保证你重发就能收到,重发100万次也不能保证收到啊。 重发几次,就该抛出异常了。怎么能那么固执地非要看到 UDP 收到消息?
以专业开发人员为伍
2019-01-22
打赏
举报
回复
如果你是“对等网络”那么可能就是另外一回事儿了。比如说你的客户端其实也是服务器,消息接收端将返回值不是返回到客户端的消息发送端口,而是返回到客户端的服务器监听端口。那么这个时候你似乎可以使用 UDP 了。
以专业开发人员为伍
2019-01-22
打赏
举报
回复
所谓“UDP是不可靠的通讯”就是说它不受路由器“待见”,各种不同种类的路由器也许能支持它40%,也许连10%都不支持它,不保证它的通讯。相比之下,路由器只保证 TCP 通讯。
以专业开发人员为伍
2019-01-22
打赏
举报
回复
任何通讯,本来就应该由客户端发起访问。关键的区别在于这个之后的通讯行为。TCP 和 UDP 有天壤之别,UDP 的不合规 NAT 访问本来就被阻拦。所以不要乱用什么不靠谱的“UDP打洞”概念,多用 TCP 的靠谱的双向通讯机制。
weixin_43923132
2019-01-22
打赏
举报
回复
重新启动服务端,客户端之后,上图的9001端口就有可能会接收到信息,但是其他的端口又有可能会接收不到。如果客户端接收不到信息,重复发送还是接收不到。
以专业开发人员为伍
2019-01-22
打赏
举报
回复
另外,UDP 不支持流式长连接。任何通讯本来就应该是由客户端发起连接。对于 TCP 这类,那么一旦建立起来,在断开之前,那么服务器可以随时推送消息给客户端,路由器支持长连接NAT机制。但是假设A跟B进行了 UDP 通讯,那么路由器只在很短促的时间内维持 B 对 A 的 NAT 转换,这个窗口期时间一过就不可能在从 B 访问 A 了。因为对于路由器来说,UDP 通讯协议是流氓,TCP 通讯协议才是君子。
weixin_43923132
2019-01-22
打赏
举报
回复
接收不到信息的那个端口,重发多次信息,还是会接收不到
wanghui0380
2019-01-22
打赏
举报
回复
udp收不消息是一件相当正常的事情,udp本身就是只管发不管收的机制。
所以一般使用udp的,如果需要保证消息的,请自己做消息确认和重发,超时等机制
如果不需要保证消息的,一般是连发3-5次,多发几次尽量覆盖,如果实在覆盖不到也没办法,反正原本就是不保证消息的要求
以专业开发人员为伍
2019-01-22
打赏
举报
回复
udp本来就是不可靠的。网络中,一旦通过路由器中转通讯,特别是多个路由器,有多一半消息都收不到,这也是“正常”的。
皂皂丶
2019-01-22
打赏
举报
回复
抓包看下服务有没有全都发出去,然后如果都发了,客户端查问题,反之服务端查问题
weixin_43923132
2019-01-22
打赏
举报
回复
希望各位大神帮帮忙!谢谢啊!
c#
UDP
多线程 多
客户端
传输例子
包含一个服务端 和一个
客户端
c#编写
UDP
多线程 套接字 传输
UDP
socket自动连接
客户端
两台或多台android设备,其中有一台作为服务端,则另外一台或几台作为
客户端
,然后通过
UDP
进行自动连接.其实现的原理很简单,服务端这一边通过MulticastSocket将自己的有关
信息
,如IP,端口等广播出去,同一个广播地址里面的
客户端
可以
接收
到该广播,并从中解析要相关的
信息
.
Qt编写网络调试助手(TCP
客户端
+TCP服务端+
UDP
服务端)终极版
时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了。这次真的打死也不再改版了。 旧版本1:http://www.qtcn.org/bbs/read-htm-tid-55540.html 旧版本2:http://www.qtcn.org/bbs/read-htm-tid-62636.html 基本功能: 1:16进制数据和ASCII数据收发。 2:定时器自动发送。 3:自动从配置文件加载最后一次的界面设置。 4:自动从配置文件加载数据发送下拉框的数据。可以将经常使用的数据填写在send.txt中。 5:可启用设备模拟回复,当收到某个数据时,模拟设备自动回复数据。对应数据格式填写在device.txt中。 6:可对单个在线连接发送数据,也可勾选全部进行发送。 7:支持
多个
客户端
连接并发。 8:采用单线程。 9:四种模式,tcp服务器、tcp
客户端
、
udp
服务器、
udp
客户端
。
TCP/
UDP
socket 调试工具
TCP/
UDP
socket 调试工具 TCP/
UDP
socket 调试工具 SocketTool调试软件是一款网络TCP/
UDP
通信调试工具,本工具集功能强大与简单易用为一体,是无需安装的免费绿色软件。她可以帮助网络编程人员、网络维护人员检查所开发的网络应用软硬件的通信状况。 ★ 全面集成 TCP服务器/
客户端
;
UDP
服务器/
客户端
;
UDP
广播/组播 功能 ★ 支持多Socket并行测试, 采用树状Socket可视化界面,所有Socket句柄一目了然 ★ 在一个程序内可进行多句柄/多类型的Socket的创建/删除/以及数据收发等操作 ★ 支持16进制的发送和16进制
接收
显示,支持汉字以及文本发送 ★ 用户可以方便的把
接收
到的数据保存下来 ★ 支持发送、
接收
字节数统计 ★ 支持数据循环发送,同一内容可自动发送1次至10000次 本软件可广泛用于GPRS/CDMA/局域网/广域网等基于Socket方式的数据采集平台的通信调试,让SocketTool真正成为您的TCP/
UDP
Socket应用开发助手!
SOCKET_压力测试与日志工具
使用说明:(1)目的socket 基于 .Net Framework 1.1 开发,基于 socket 开发,可以发送和
接收
TCP/
UDP
包。作者主要用于作服务器压力测试和日志
接收
。(2)功能简介界面上有两个 TAB 标签,一个发送一个
接收
。每个标签页上有上下两个大文本框,上面的文本框用来输入发送
信息
,下面的文本框用来显示收到的
信息
。(3)发送功能例如在“发送”标签页,在上面文本框输入 HTTP 协议包文本,点击发送,会向服务器发送
信息
,然后会在下面的文本框显示 Response,如果返回的是 UTF-8 编码,可以在菜单里选择 UTF-8 解码从而解决乱码
问题
。发送有TCP/
UDP
/HTTP三种模式,TCP/
UDP
只发不收,但HTTP会自动一发一收。(4)
接收
功能在“
接收
”标签页,上面文本框可以输入返回给
客户端
的
信息
,下面文本框用来显示从
客户端
接收
到的
信息
。接受有TCP/
UDP
两种模式。(5)其他功能 1、多线程发送功能,用于压力测试,在文件菜单里可以增加和减少或停止发送线程,还可以作线程计数 2、文件菜单里有超时设置
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章