为了账号安全,请及时绑定邮箱和手机立即绑定

UDP信息的接收?

基于UDP的通信,老师讲的我是这么理解的:客户端发送信息后,服务器端接收信息。通过recieve(packet)方法,把接收的信息存储在服务器端的packet中,然后通过构造把packet中的信息转到byte[]数组中,在把数组转为字符串,得到发送过来的信息。不知道理解的对不对?那这样的话,发送过来的信息太长,byte[]的长度不够怎么办?有所循环读取的,我看了API也没有想到循环读取的方法。

正在回答

1 回答

我记得老师说过这么一句话:byte[]是数据报中用来存储数据的。 所以我的理解是:通过receive(packet)方法,把接收的信息存在服务器端的packet中,实际上就是存在了packet中的byte[]中,然后通过String info = new String(data,0,packet.length)把packet中的byte[]转化为了String类型。 至于你提问的byte[]长度不够,我想你担心的是用来接收数据的byte data = new byte[1024];太短吧,我以前也有过这种疑问。我查过很多资料,官方的说法不好理解,民间的说法是:byte[1024]就像缓存一样去存储接收到的信息,当byte[1024]装满的时候,会清空,再从刚才没存放完的地方继续存,依次类推,直到存放完所有接收到的数据。 这是我个人的理解,你参考看看

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

UDP信息的接收?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信