F
faabi
Gast
Hallo,
ich habe ein Problem bei der Realisierung einer einfachen Datei Übertragung per Java Socket.
Auf dem Server existiert eine PDF Datei (bzw. eine Text Datei wurde ebenfalls getestet), die per Request an den Client geschickt werden soll.
Ich habe das ganze mit einer ganz simplen "Zeichen-für-Zeichen-Übertragung" bewerkstelligt, was an sich auch funktioniert, das Problem ist nur das die Datei nicht "Eins-zu-Eins" beim Client ankommt ...
Übertrage ich eine Text Datei mit Sonderzeichen, werden diese schon falsch dargestellt. Übertrage ich eine PDF Datei, welches das eigentliche Szenario darstellt, lässt sich diese nicht öffnen nachdem sie übertragen wurde. (Ich nehme an weil auch hier nicht alle Zeichen korrekt übertragen werden.
Was kann ich tun damit die Zeichen wirklich 100% so ankommen wie sie in der Urprungsdatei standen?
(Bei den Plattformen handelt es sich auf Serverseite um Windows7 und auf Clientseite um Google Android)
Server sendet Datei:
Client fordert Datei an, bzw. empfängt Datei:
[Java]
private void handleConnection() {
try {
File pdfFile = new File("/sdcard/cam_info.pdf");
//FileWriter fw = new FileWriter(pdfFile);
FileOutputStream fs = new FileOutputStream(pdfFile);
OutputStream os = client.getOutputStream();
InputStream is = client.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// File request senden:
int msg = 123; // 123 = get_auth_pdf
os.write(msg);
// fs.write(br.read());
// Datei-Inhalte schreiben:
int i = 0;
while ((i = br.read()) != -1)
{
fs.write(i);
}
fs.write(-1);
fs.flush();
fs.close();
}
}
[/code]
Vielen Dank,
Gruß Fabian =)
ich habe ein Problem bei der Realisierung einer einfachen Datei Übertragung per Java Socket.
Auf dem Server existiert eine PDF Datei (bzw. eine Text Datei wurde ebenfalls getestet), die per Request an den Client geschickt werden soll.
Ich habe das ganze mit einer ganz simplen "Zeichen-für-Zeichen-Übertragung" bewerkstelligt, was an sich auch funktioniert, das Problem ist nur das die Datei nicht "Eins-zu-Eins" beim Client ankommt ...
Übertrage ich eine Text Datei mit Sonderzeichen, werden diese schon falsch dargestellt. Übertrage ich eine PDF Datei, welches das eigentliche Szenario darstellt, lässt sich diese nicht öffnen nachdem sie übertragen wurde. (Ich nehme an weil auch hier nicht alle Zeichen korrekt übertragen werden.
Was kann ich tun damit die Zeichen wirklich 100% so ankommen wie sie in der Urprungsdatei standen?
(Bei den Plattformen handelt es sich auf Serverseite um Windows7 und auf Clientseite um Google Android)
Server sendet Datei:
Java:
private static void sendFile(Socket client) throws IOException {
File f = new File("C:/pdftest/test.pdf");
int fileSize = (int)f.length();
BufferedReader br2 = new BufferedReader(new InputStreamReader(new FileInputStream(f), "UTF-8"));
char fileBuffer[] = new char[fileSize];
OutputStream os = client.getOutputStream();
for (int i = 0; i < fileSize; i++)
{
br2.read(fileBuffer);
os.write(fileBuffer[i]);
}
}
Client fordert Datei an, bzw. empfängt Datei:
[Java]
private void handleConnection() {
try {
File pdfFile = new File("/sdcard/cam_info.pdf");
//FileWriter fw = new FileWriter(pdfFile);
FileOutputStream fs = new FileOutputStream(pdfFile);
OutputStream os = client.getOutputStream();
InputStream is = client.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// File request senden:
int msg = 123; // 123 = get_auth_pdf
os.write(msg);
// fs.write(br.read());
// Datei-Inhalte schreiben:
int i = 0;
while ((i = br.read()) != -1)
{
fs.write(i);
}
fs.write(-1);
fs.flush();
fs.close();
}
}
[/code]
Vielen Dank,
Gruß Fabian =)