我有一个冗长的文本文件,我试图通过本地主机上的UDP进行传输,所以很自然地,我必须打破字节缓冲区来发送数据包中的文件。数据包的getOffset()在接收端返回0
我遇到的问题是这样的:
在服务器端,我发送一个数据包与偏移量设定为500说字节缓冲区:
byte[] buf = text.getBytes();
InetAddress address = InetAddress.getByName("localhost");
DatagramPacket packet = new DatagramPacket(buf, 500, BYTES_PER_PACKET, address, udp_port_num);
System.out.println("Offset at server: " + packet.getOffset());
udpSocket.send(packet);
print语句返回的500
预期的答案,但随后在客户端:
byte[] buf = new byte[BYTES_PER_PACKET];
DatagramPacket packet = new DatagramPacket(buf, BYTES_PER_PACKET);
udpSocket.receive(packet);
String received = new String(packet.getData());
System.out.println(received);
System.out.println("Offset: " + packet.getOffset());
它从接收到的文件的偏移量打印正确的文本,但是packet.getOffset()总是返回0.为什么它不是从服务器返回相同的500和/或我怎样才能让它返回相同的500从服务器?
在此先感谢