UDP信息的接收?

来源:4-2 编程实现基于 UDP的 Socket 通信之服务器端

新人沈琦斌

2016-08-07 22:08

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

写回答 关注

1回答

  • ToBeBrilliant
    2016-08-08 14:10:58

    我记得老师说过这么一句话: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]装满的时候,会清空,再从刚才没存放完的地方继续存,依次类推,直到存放完所有接收到的数据。 这是我个人的理解,你参考看看

Java Socket应用---通信是这样练成的

分享的是 Java 中的网络编程,使用Socket实现网络聊天通信

125012 学习 · 590 问题

查看课程

相似问题