社区
Java SE
帖子详情
基于UDP数据传输时byte[]长度设置问题
lovelyfirefox
2003-09-14 10:50:46
基于UDP数据传输时,是把一个byte[]作为参数放入DatagramPacket中传递的,
1. 发送端的byte[] 长度是否应和接收端的长度保持一致,
2. 如果这样,我设置发送的长度是否就应为定长,
3. 要发送的数据会有长有短,短的可能就几十个byte,长的有可能是一篇文章,那么,设置多长的byte[]比较合适:256,512...???
...全文
63
2
打赏
收藏
基于UDP数据传输时byte[]长度设置问题
基于UDP数据传输时,是把一个byte[]作为参数放入DatagramPacket中传递的, 1. 发送端的byte[] 长度是否应和接收端的长度保持一致, 2. 如果这样,我设置发送的长度是否就应为定长, 3. 要发送的数据会有长有短,短的可能就几十个byte,长的有可能是一篇文章,那么,设置多长的byte[]比较合适:256,512...???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bd4ji
2003-09-14
打赏
举报
回复
发送端应该是按照发送内容大小设置的。
下面是很久以前写的一个程序的一部分:
public void send(RtpPacket sendRtpPacket){
DatagramPacket sendPacket = new DatagramPacket(sendRtpPacket.getData(),sendRtpPacket.getData().length);
try{
DatagramSocket sendSocket = new DatagramSocket();
for (int i=0;i<destinationList.size();i++){
DestAddress destAddress = (DestAddress)destinationList.get(i);
sendPacket.setAddress(destAddress.inetAddress);
sendPacket.setPort(destAddress.port);
sendSocket.setSendBufferSize(sendPacket.getLength());
sendSocket.send(sendPacket);
sendsequenceNumber ++;
sCount ++;
}
}
catch (Exception e){
e.printStackTrace();
}
}
Keepers
2003-09-14
打赏
举报
回复
256吧,其实这个关系不是很大
UDP
和TCP最大
数据传输
长度
#
UDP
和TCP最大
数据传输
长度
UDP
可发送的数据最大
长度
为IP包的最大
长度
减去IP头部和
UDP
头部的
长度
, 不过,这个
长度
为MTU,MSS不是一个层面上的概念。MTU和MSS是基于以太网和通信线路上网络包的最大
长度
来计算的,而IP包的最大
长度
是由IP头部中的“全长”字段决定的。“全长”字段的
长度
为16比特,因此从IP协议规范来看,IP包的最大
长度
为65535字节,再减去IP头部和
UDP
头部的
长度
,就是
UDP
协议所能发送的数据最大
长度
。如果不考虑可选字段的话,一般来说ip头部为20字节,
UDP
头部为8字节
TCP和
UDP
数据传输
方式
TCP和
UDP
数据传输
大致步骤
java获取
udp
报文的
长度
_
UDP
的最大报文
长度
对于以太网环境下
UDP
传输中的数据包
长度
问题
首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。其中以太网(Ethernet)的数据帧在链路层IP包在网络层TCP或
UDP
包在传输层TCP或
UDP
中的数据(Data)在应用层它们的关系是数据帧{IP包{TCP或
UDP
包{Data}}}在应用程序中我们用到的Data的
长度
最大是多少,直接取决于底层的限制。我们从下到上分析一下:在链路...
基于
UDP
的简单文件传输
利用
udp
来传输小文件 1.服务器端 1.DatagramSocket 类表示用于发送和接收数据报包的套接字。它的receive()方法可以接受数据报包,然后数据报包再把数据输出出来。 receive()方法介绍:从此套接字接收数据报包。当此方法返回
时
,DatagramPacket的缓冲区将被接收到的数据填充。 此方法将阻塞,直到接收到数据报为止。数据报包对象有一个length字段包含接收到的消息...
细节!
UDP
最大传输报文
长度
是512字节还是1472字节?
疑问 今天学习DNS服务器的
时
候,发现,DNS使用的通信方式,有
UDP
和TCP两种。一般情况下使用的是
UDP
进行DNS域名查询。但是,在以下两种情况会使用TCP进行域名查询: 但是,这里就有个
问题
了。
UDP
支持的最大数据不是受限于以太网帧的MTU1500字节吗?那么计算下来,也应该是1500-20-8=1472字节啊。怎么就是512了? 解答 进行了一波搜索,终于找到原因了。以太网帧在局域网中的MTU是1500
byte
,但是在非局域网环境,如:internet下的
时
候,MTU是各个路由器进行一个配置的。所
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章