dateien übertragen, probleme mit versch. Strömen?

Status
Nicht offen für weitere Antworten.
M

muuh

Gast
Teil des Server-Codes:
Code:
bout = new BufferedOutputStream(socket.getOutputStream()); 
for (int i=0; i<countGamesToDownload; i++)
				    {
				    	filename=System.getProperty("user.dir")+"\\"+ gamesToDownload.get(i)+".zip";
				    	System.out.println("Filename: " + filename);
				    	bin = new BufferedInputStream(new FileInputStream(filename));
				    	int len = 0;
				    	
				    	int filesize = (int) new File(filename).length();
				    	byte[] buffer = new byte[filesize];
				    	len = bin.read(buffer);
				    	bout.write(buffer, 0, len);
				    	bout.flush();
				    }

Teil des Client-Codes:
Code:
bin = new BufferedInputStream(socket.getInputStream()); 
for (GameInfo gi : gamesToDownloadVec)
				{
						System.out.println(gi.getName());
					      bout = new BufferedOutputStream(new FileOutputStream(new File("C:\\Temp\\" +gi.getName()+".zip")));
					      int bytesRead = 0;
					     
					      bytesRead = bin.read(buffer);
					      bout.write(buffer, 0, bytesRead);
					      System.out.println(bytesRead);
					      bout.flush();
					      bout.close();
					}

ich verwende in beiden Programmen auch noch andere Ströme, wie bufferedReader/Writer und ObjectInput/OutputStream...

Wenn ich jetz in dem Vector den ich in der for-schleife durchlaufe nur ein element habe, funktioniert alles...
Wenn ich zwei drinnen habe, dann schaut es für mich beim debuggen so aus, als würde der server beide dateien gleichzeitig senden und nicht warten, bis sich der client die erste datei abholt...

Könnte das daran liegen, dass ich mehrer Ströme verwende?
Wie kann ich den Fehler beheben?

Bitte um Hilfe...
 
B

Beni

Gast
Ein Stream ist einfach eine Folge von bytes, nicht mehr. "write( buffer, 0, len)" schreibt einfach ein paar bytes mehr, aber der Stream interessiert sich nicht dafür, wieviele bytes jetzt da wirklich kommen. Vorallem speichert er das nicht.

Hingegen liest "read" soviele bytes, wie es halt gerade gibt (was natürlich auch viel weniger als die Länge des übergebenen Buffers sein kann...). Read weiss nichtmal, dass "write" mit einem Buffer aufgerufen wurde, geschweige denn, dass es genau x bytes lesen müsste.

Du musst hier schon ein bisschen Meta-Information in den Stream einbauen. z.B. jeweils zuerst die Länge der Datei übertragen (ein int kann man praktischerweise in 4 bytes kodieren). Und das read muss in einer Schleife sein, sonst liest du evtl. zuwenig aus dem Stream.
 
M

muuh

Gast
danke!
Es funktioniert jetz! Is ja eigentlich eh logisch, hab ihm jetz vorher noch die filesize übergeben und so viele bytes liest er dann ein und es klappt wunderbar...

vielen dank!
 
M

muuh

Gast
Doch noch nicht schließen!

Ich glaub das war ein Zufall, dass es geklappt hat, weil jetz gehts nicht mehr....

Ich bin leider nicht so bewandert mit dem thema wie viele bytes ein integer hat...

kann mir vielleicht wer sagen, wie ich einen int als byte schicke bzw. das auf der andern seite wieder entschlüssle
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
T MP3 Dateien Stream Netzwerkprogrammierung 3
I Kleine Dateien senden Netzwerkprogrammierung 3
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
F HTTP HTTP-Download: Dateien in einem Verzeichnis ermitteln Netzwerkprogrammierung 8
D Aus einer URL die Dateien lesen Netzwerkprogrammierung 5
D HTTP Checksumme von Dateien abfragen Netzwerkprogrammierung 2
Semox HTTP Webserver: Externe Dateien werden nicht verwendet. Netzwerkprogrammierung 10
Weltall 7 HTTP Dateien an PHP-Skript senden Netzwerkprogrammierung 11
M Dateien über TCP/IP senden Netzwerkprogrammierung 18
R Mehrere Dateien über einen Socket senden Netzwerkprogrammierung 2
J Mit der File Api Dateien von anderen Rechnern lesen ? Netzwerkprogrammierung 3
V Problem beim Senden von Dateien Netzwerkprogrammierung 4
E Upload großer Dateien? Netzwerkprogrammierung 5
D dateien kopieren, am localhost funktionierts, im netz nicht Netzwerkprogrammierung 2
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
V Dateien Auflisten Netzwerkprogrammierung 3
G Probleme mit Firewall beim empfangen von dateien über socket Netzwerkprogrammierung 6
flashfactor Dateien im Netzwerk kopieren Netzwerkprogrammierung 2
I Dateien schnell/synchron senden Netzwerkprogrammierung 2
S Dateien versenden Netzwerkprogrammierung 16
C Dateien über Sockets versenden? Netzwerkprogrammierung 10
S Dateien auf einem HTTP Server Netzwerkprogrammierung 2
N *.* Dateien versenden im Lan Netzwerkprogrammierung 5
O Dateien von einem Server laden Netzwerkprogrammierung 3
T Dateien wia P2P Connection versenden Netzwerkprogrammierung 2
W Server schickt Dateien jede 3 Sekonden Netzwerkprogrammierung 3
C Verzeichnisstrukturen & Dateien über Socketverb. übertra Netzwerkprogrammierung 12
A FileSend - Dateien verschicken Netzwerkprogrammierung 19
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
I Socket ObjectOutputStream-Socket: Objekt wird falsch übertragen Netzwerkprogrammierung 2
D Socket Gute Idee?: File als byte[] per ObjectIOStream übertragen Netzwerkprogrammierung 3
A RMI RMI - Thread Objekte übertragen und auf anderer Machine weiterlaufen lassen Netzwerkprogrammierung 0
T Anwendungseinstellungen ohne Datei übertragen? Netzwerkprogrammierung 8
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
TheJavaKid Bilder mit nem ObjectStream übertragen Netzwerkprogrammierung 8
S Socket Schlüssel übertragen Netzwerkprogrammierung 2
X Kleine Datenobjekte übertragen Netzwerkprogrammierung 10
M Map über Webservice übertragen Netzwerkprogrammierung 3
M Java to php setAsciiStream übertragen Netzwerkprogrammierung 7
K Frame übertragen Netzwerkprogrammierung 8
J Nach Dateiversand werden keine Nachrichten mehr übertragen Netzwerkprogrammierung 11
S Socket Bilder übertragen Netzwerkprogrammierung 7
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
H ArrayList via WebService übertragen Netzwerkprogrammierung 3
C Client zu Client Daten übertragen Netzwerkprogrammierung 13
S ActiveMQ, JMS und Datei übertragen Netzwerkprogrammierung 25
L Socket publicKey mittels DatagramPacket übertragen Netzwerkprogrammierung 8
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
P Socket Datei von Client zum Server übertragen --> Weiterleitung an Clients Netzwerkprogrammierung 16
Q Problem bei Vergleichen von Strings übertragen über eine Socketverbindung Netzwerkprogrammierung 3
L Audiodateien per Socket übertragen? Netzwerkprogrammierung 2
N Per POST -Methode Daten an den Web-Server übertragen. Netzwerkprogrammierung 9
F Stream wird als Char übertragen. Char -> in String umwand Netzwerkprogrammierung 5
W Objekt über Socket übertragen Netzwerkprogrammierung 14
M Daten übers Netz verschlüsselt übertragen? Wie? Netzwerkprogrammierung 18
S über rmi datei übertragen? Netzwerkprogrammierung 2
G.I.Joe Datei per POST übertragen Netzwerkprogrammierung 2
S zip-files über sockets übertragen Netzwerkprogrammierung 11
T Rechenserver: Double übertragen Netzwerkprogrammierung 2
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8
E Dynamisches übertragen von Stubs Netzwerkprogrammierung 2
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
platofan23 Probleme mit Socket bei Android Studio? Netzwerkprogrammierung 22
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
K Probleme bei HTML-Mail-Abruf mit IMAP bei 1und1 Netzwerkprogrammierung 2
L Socket SSLServer Probleme Netzwerkprogrammierung 0
H Probleme mit UDP Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
R Probleme mit JMS Netzwerkprogrammierung 1
A Probleme beim Klassen-Import von sun.misc. ... Netzwerkprogrammierung 19
M RMI RMI Probleme zwischen Client und Server Netzwerkprogrammierung 5
B Probleme beim ersten Netzwerkprogramm Netzwerkprogrammierung 3
M Probleme mit FTP Netzwerkprogrammierung 19
windl URLConnection unter 1.7 macht Probleme Netzwerkprogrammierung 14
Z Socket Probleme beim Senden und Empfangen Netzwerkprogrammierung 5
Z Probleme beim Senden von Nachrichten an den Server Netzwerkprogrammierung 9
Maxim6394 Probleme bei Messenger Netzwerkprogrammierung 16
I Socket UDP Hole Punching bereitet Probleme Netzwerkprogrammierung 14
C Socket Probleme beim Lesen und Schreiben aus/in einen Socket Netzwerkprogrammierung 2
S HTTP Probleme mit POST-Befehl Netzwerkprogrammierung 2
R FTPS - Probleme mit FTPSClient Netzwerkprogrammierung 2
S Probleme mit XMLEncoder/XMLDecoder Netzwerkprogrammierung 2
D Server - Client Probleme Netzwerkprogrammierung 9
Weiti HTTP Zertifikat-Probleme - InstallCert.java Netzwerkprogrammierung 2
M Socket Probleme mit einfacher Socketverbindung Netzwerkprogrammierung 3
H Probleme mit GUI (RMI) Netzwerkprogrammierung 6
T RMI Probleme mit RMI-Server Netzwerkprogrammierung 4
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
T FTP Probleme mit Passiv und Binary Mode Netzwerkprogrammierung 3
J Probleme mit Threads (Client terminiert) Netzwerkprogrammierung 4
S Socket SocketServer und Client machen Probleme Netzwerkprogrammierung 6
B Server / Client Anwendung, Client GUI Probleme Netzwerkprogrammierung 11
F RMI probleme Netzwerkprogrammierung 3
D Probleme bei mehreren Clients uns Senden von Messages Netzwerkprogrammierung 16
E jPcap Probleme Netzwerkprogrammierung 3
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
T Probleme mit Jpcap Netzwerkprogrammierung 18

Ähnliche Java Themen

Neue Themen


Oben