Hallo alle zusammen,
sitze gerade an einem Projekt für die Uni und komme irgendwie nicht weiter.
Was will ich machen?
Ich habe ein Verzeichniss mit mehreren kleineren Dateien (PDF). Diese soll der Server einzeln an den Client senden.
Soweit so gut. Das Problem daran ist, dass ich keine Ahnung habe, wie der Client erkennen soll, dass gerade eine neue Datei angekommen ist, da er immer Blöcke zu je 1024 Byte bekommt. Daraus resultieren auf der Client- Seite auch ein Haufen Dateien zu je 1024 Byte.
Zur Verdeutlichung ein wenig Code:
Hier der Teil der Serverkomponente:
Dazu noch die Methode zum empfangen:
Ich wäre sehr verbunden um Hinweise, die mir helfen, dieses Problem zu lösen
Beste Grüße und vielen Dank im Vorraus,
Martin
sitze gerade an einem Projekt für die Uni und komme irgendwie nicht weiter.
Was will ich machen?
Ich habe ein Verzeichniss mit mehreren kleineren Dateien (PDF). Diese soll der Server einzeln an den Client senden.
Soweit so gut. Das Problem daran ist, dass ich keine Ahnung habe, wie der Client erkennen soll, dass gerade eine neue Datei angekommen ist, da er immer Blöcke zu je 1024 Byte bekommt. Daraus resultieren auf der Client- Seite auch ein Haufen Dateien zu je 1024 Byte.
Zur Verdeutlichung ein wenig Code:
Hier der Teil der Serverkomponente:
Java:
public void sendSplitedPDFFiles(String splitedDir) {
File splitedPDFDir = new File(splitedDir);
String[] slideFiles = splitedPDFDir.list(new PDFFilenameFilter());
for (int i = 0; i < slideFiles.length; i++) {
try {
log.trace(slideFiles[i]);
fileIn = new FileInputStream(splitedPDFDir.getAbsolutePath()
+ System.getProperty("file.separator") + slideFiles[i]);
while (fileIn.available() > 0) {
stringBuffer.append(fileIn.read(buffer));
pdfOutStream.write(buffer, 0, fileIn.read(buffer));
}
fileIn.close();
} catch (FileNotFoundException e) {
log.error("Could not find the given file. " + e.getMessage());
} catch (IOException e) {
log.error("Could not send the file: slide_" + (i + 1) + ".pdf "
+ e.getMessage());
}
}
}
Dazu noch die Methode zum empfangen:
Java:
public void receivePDFFiles(File dir) {
log.trace("receive pdf files save it to " + dir.getAbsolutePath());
System.out.println(dir.list().length);
try {
while (true) {
log.trace("try to receive");
int bytesRead;
bytesRead = pdfInStream.read(buffer);
if (bytesRead == -1) {
break;
}
pdfFileOut.write(buffer, 0, bytesRead);
pdfFileOut.close();
}
} catch (IOException e) {
log.error("Error while reading from stream. " + e.getMessage());
}
}
Ich wäre sehr verbunden um Hinweise, die mir helfen, dieses Problem zu lösen
Beste Grüße und vielen Dank im Vorraus,
Martin