社区
Java SE
帖子详情
Mina使用UDP时丢包严重,急```
sharkdoodoo
2011-03-14 10:05:36
客户端起了10个线程,每个线程发送10个数据包(自定义的,有头,有长度,有内容,已测试单包发送没问题)
服务端接收数据包,结果发现丢包一半以上
- -!
尝试在 messageRecevied 方法中不错任何事情(减少处理时间,只是简单 println 语句) 仍然没有 10*10 的结果
如果客户端是 100*1 ,一百个线程,每个发一条,丢包更严重
如果客户端是 10*5 ,5个线程,每个发10条,结果不丢包...
求解释.....
...全文
666
11
打赏
收藏
Mina使用UDP时丢包严重,急```
客户端起了10个线程,每个线程发送10个数据包(自定义的,有头,有长度,有内容,已测试单包发送没问题) 服务端接收数据包,结果发现丢包一半以上 - -! 尝试在 messageRecevied 方法中不错任何事情(减少处理时间,只是简单 println 语句) 仍然没有 10*10 的结果 如果客户端是 100*1 ,一百个线程,每个发一条,丢包更严重 如果客户端是 10*5 ,5个线程,每个发10条,结果不丢包... 求解释.....
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
麦田的守望-lion
2012-12-19
打赏
举报
回复
还是TCP比较好用
sharkdoodoo
2011-10-22
打赏
举报
回复
嗯,这个可以试试。
gzhongxin
2011-10-20
打赏
举报
回复
可能跟你的 bufferSize 有关,你调整一下 ReadBufferSize、ReceiveBufferSize和SendBufferSize 这些参数 。 如果缓冲区满的话,收到的UDP包会丢弃。
Steven725
2011-07-04
打赏
举报
回复
这是正常现象,主要原因是UDP没有流量控制,也不具有滑动窗口协议,如果发送端发送频率过高,会淹没接收端。接收端缓存不够就会导致丢包,其实数据包压根还没传送到MINA那一层,在操作系统内核层就丢掉了。因此不论你如何优化,精简MINA的处理,只要发送频率过快,还是会有丢包问题,除非在应用层对每个包编号,并自实现超时重发(类似TFTP协议)。
Coolfatman
2011-03-15
打赏
举报
回复
一 发送以后加点延时。
二 不要发较大的包。
0轰隆隆0
2011-03-15
打赏
举报
回复
很明显,发送频率太高,被路由器或者网关或者网卡丢弃了
处理办法是:使用独立的线程,每发送一次,休息一会儿,而且还要保证数据包格式大小的合法性,格式不正确或者太长太短都会被丢弃不处理
yaoweijq
2011-03-15
打赏
举报
回复
这个。。。
聊天记录又不是啥核心内容
可以忍受一定量的丢包
不过丢包这高估计是网络不好
先把网络环境弄好再说吧
[Quote=引用 3 楼 longshao_feng 的回复:]
引用 1 楼 bao110908 的回复:
估计网络环境不好。
要想不丢包那就用 TCP
因为项目是要存储游戏玩家的聊天记录,基本都是文本信息,数据总量大,但单个数据包小,而且客户端并发度高,用 UDP 会比 TCP 好吧...
[/Quote]
sharkdoodoo
2011-03-15
打赏
举报
回复
[Quote=引用 1 楼 bao110908 的回复:]
估计网络环境不好。
要想不丢包那就用 TCP
[/Quote]
因为项目是要存储游戏玩家的聊天记录,基本都是文本信息,数据总量大,但单个数据包小,而且客户端并发度高,用 UDP 会比 TCP 好吧...
Nodin
2011-03-14
打赏
举报
回复
线程……Windows下一个线程默认占1M空间……UDP不保证数据完整性
火龙果被占用了
2011-03-14
打赏
举报
回复
估计网络环境不好。
要想不丢包那就用 TCP
图文详解
mina
框架
Apache
Mina
Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、
UDP
/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),
Mina
可以帮助我们快速开发高性能、高扩展性的网络通信应用,
Mina
提供了事件驱动、异步(
Mina
的异步IO 默认
使用
的是JAVA NIO 作为底层支持)操作的编程模型。
Mina
主要有1.x 和...
UDP
:Java实现简单大文件传输
今天闲来无事,想起过几天要写一个
UDP
文件传输的插件服务,于是xia
Apache
mina
入门(五) —— 断包,粘包问题解决
通过前面的文章Apache
mina
入门(一)— 基础知识,我们可以知道:Apache
Mina
Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、
UDP
/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),
Mina
可以帮助我们快速开发高性能、高扩展性的网络通信应用,
Mina
提供了事件驱动、异步(
Mina
的异步IO 默认
使用
的是
实现java
UDP
Server
一、
UDP
Server项目的需要,需要利用java实现一个
udp
server,主要的功能是侦听来自客户端的
udp
请求,客户请求可能是大并发量的,对于每个请求Server端的处理很简单,处理每个请求的
时
间大约在 1ms左右,但是Server端需要维护一个对立于请求的全局变量Cache,项目本身已经采用
Mina
架构 (http://
mina
.apache.org/),我要开发的Server作...
不为人知的网络编程(七):如何让不可靠的
UDP
变的可靠?
本文内容来自学霸君资深架构师袁荣喜的技术分享。 1、前言 最近和很多实
时
音视频领域的朋友交流中都有谈论到 R
UDP
(Reliable
UDP
),这其实是个老生常谈的问题,R
UDP
在很多著名的项目上都有
使用
,例如 Google 的 QUIC 和WebRTC。在
UDP
之上做一层可靠,很多朋友认为这是很不靠...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章