Java 数据包的getOffset()在接收器上返回0';终点
我有一个很长的文本文件,我正试图在本地主机上通过UDP传输,因此自然我必须打破字节缓冲区以数据包的形式发送该文件 我遇到的问题是: 在服务器端,我将偏移量设置为500的数据包发送到字节缓冲区:Java 数据包的getOffset()在接收器上返回0';终点,java,udp,datagram,Java,Udp,Datagram,我有一个很长的文本文件,我正试图在本地主机上通过UDP传输,因此自然我必须打破字节缓冲区以数据包的形式发送该文件 我遇到的问题是: 在服务器端,我将偏移量设置为500的数据包发送到字节缓冲区: byte[] buf = text.getBytes(); InetAddress address = InetAddress.getByName("localhost"); DatagramPacket packet = new DatagramPack
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
提前感谢这一切的意义是:
DatagramPacket
,使用源数组的每个数据包500个字节DatagramPacket
,指定offset=0,或不指定offset参数。您将接收到的数据放入DatagramPacket。
Java将UDP数据报放入DatagramPacket中的字节数组中,
从您指定的偏移量开始:零DatagramPacket
本身并没有经过连接,发送方的字节数组也没有