public boolean FileToByteArray(DatagramSocket socket, InetAddress dst_addr, int dst_port) throws Exception{
File file = new File("input.txt");
InputStream is = new FileInputStream(file);
long length = file.length();
byte[] bytes = new byte[(int) length];
int offset = 0, n = 0;
DatagramPacket out_pkt = null;
while (offset < bytes.length && (n = is.read(bytes, offset, bytes.length - offset)) >= 0) {
offset += n;
out_pkt = new DatagramPacket(bytes, pkt_size, dst_addr, dst_port);
packetCount++;
System.out.println("*****************" + packetCount);
System.out.println(out_pkt.getLength());
socket.send(out_pkt);
}
is.close();
String s = new String(bytes);
System.out.println(s + " " + s.length()) ;
return true;
}
こんにちは、UDP 経由で大きなテキスト ファイルを送信する必要がある課題を扱っています。10000 バイトを読み取ることができますが、pkt_size を 1000 に設定すると、1KB 以上のデータである 1000 バイトしか配信されません。大きなファイルを小さなパケットに分割して送信するにはどうすればよいですか?