DatagramSocket (UDP) を使用してファイルを送信するクライアントをコーディングしていますが、最初に writeUTF() を使用してファイルの名前をサーバーに送信する必要があります。クライアントとサーバーの両方で、エラーなしでコンパイルして実行しますが、ファイル名がサーバーに届かないようです。何が起こっている可能性がありますか?以下のコードを投稿します...
ありがとう :)
クライアント.java
...
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
for (int readNum; (readNum = fis.read(buf)) != -1;)
{
bos.write(buf, 0, readNum); //no doubt here is 0
}
// File data
byte[] data = bos.toByteArray();
DataOutputStream dos = new DataOutputStream(bos);
//file is a String with the name of the file
dos.writeUTF(file);
//Setting up DatagramSocket
DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
socket.send(packet);
...
サーバー.java
...
almacen = new byte[MAXNOMBREFICHERO + 2];
packet = new DatagramPacket( almacen, almacen.length );
System.out.println("\nWaiting client...");
socket.receive(packet);
dirIPClient = packet.getAddress();
clientPort = packet.getPort();
ByteArrayInputStream bais = new ByteArrayInputStream( almacen );
DataInputStream dis = new DataInputStream( bais );
filename = dis.readUTF();
...