Byte-Array per for-Schleife schicken

x46

Mitglied
Guten Tag,

ich sende dem Server mit folgendem Code eine Reihe von Arrays. Als Erstes die Anzahl der Arrays und danach die Byte-Arrays:
Code:
Socket client = new Socket("localhost", 1612);
OutputStream outStream = client.getOutputStream();
ObjectOutputStream ous = new ObjectOutputStream(outStream);
ous.flush();

PrintWriter outP = new PrintWriter(outStream);
outP.println(out.Final_Filebyte.length); // Sende die Anzahl der Elemente
outP.flush();

for (int i = 0; out.Final_Filebyte.length > i; i++) {
  byte[] send = out.Final_Filebyte[i];
  ous.writeObject(send); // sende die Arrays
  ous.flush();
}
und empfange die Daten auf dem Server dann mit folgenden Code:
Code:
ObjectInputStream ois = new ObjectInputStream(inStream);
BufferedReader inS = new BufferedReader(new InputStreamReader(inStream));
String input = inS.readLine();
int leng = Integer.parseInt(input); // erhalte die Anzahl und schreibe sie in ein int

byte[][] bytes = new byte[leng][]; // erstelle das Array wo die Daten hineingeschrieben werden

for (int i = 0; leng > i; i++) {
  outO = ois.readObject();
  byte[] getByte = (byte[]) outO;
  bytes[i] = getByte; // empfange die Daten und speichere sie
}

Dabei bekomme ich folgenden Fehler:

Code:
java.io.EOFException
   at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
   at java.io.ObjectInputStream.readObject0(Unknown Source)
   at java.io.ObjectInputStream.readObject(Unknown Source)
   at sendTest.inWirter.run(inWirter.java:52)
   at java.lang.Thread.run(Unknown Source)


Wie kann ich das Problem lösen?

Schon einmal Danke im Voraus.
 

httpdigest

Top Contributor
Warum verwendest du denn umständlicherweise einen zusätzlichen PrintWriter und BufferedReader, um die Länge als Text/String zu senden, und nicht stattdessen einfach ObjectOutputStream.writeInt(int)?? Wenn man einmal einen ObjectOutputStream auf einem OutputStream instanziiert hat, sollte man besser nichts anderes mehr zusätzlich auf dem OutputStream tun.
Davon mal abgesehen lässt sich das Ganze viel einfacher lösen (ohne Schleife):
Java:
// Sender:
OutputStream outStream = client.getOutputStream();
ObjectOutputStream ous = new ObjectOutputStream(outStream);
ous.writeObject(out.Final_Filebyte); // <- sende byte[][] Objekt

// Empfänger:
ObjectInputStream ois = new ObjectInputStream(inStream);
byte[][] bytes = (byte[][]) ois.readObject();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Socket Byte Array senden Netzwerkprogrammierung 2
M Byte Array kommt nicht an Netzwerkprogrammierung 0
B Socket Byte-array Komprimieren Netzwerkprogrammierung 3
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
T Outputstream Byte-Array senden Netzwerkprogrammierung 2
B HEX String zu einem Byte Array ? *verzweiflung* :( Netzwerkprogrammierung 16
O Ip-String in byte[]-Array umwandeln? Netzwerkprogrammierung 3
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
D Socket Gute Idee?: File als byte[] per ObjectIOStream übertragen Netzwerkprogrammierung 3
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
C Byte Stream dekodieren Netzwerkprogrammierung 7
N Paket-Analysieren Byte-Streams Netzwerkprogrammierung 12
K Socket byte Schleife beendet nicht Netzwerkprogrammierung 9
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
J byte[] auf Stream schreiben Netzwerkprogrammierung 2
Q NullPointExeption beim Versuch byte[] zu senden/writen Netzwerkprogrammierung 3
E RTP Packet lesen - Byte Problem 0xFFFFFF80 statt 0x80 Netzwerkprogrammierung 7
V Zuweisen einer InetAddress mit einem byte Netzwerkprogrammierung 5
D Byte-Zähler des Netzwerkinterface auslesen Netzwerkprogrammierung 2
T Kommunikation auf Byte-Ebene zw. C und Java via Socket Netzwerkprogrammierung 12
H Byte-Codierung bei Socket-Verbindung ändern Netzwerkprogrammierung 8
8 Socket Streams nur mit Byte? Netzwerkprogrammierung 2
G binärwert aus 2 byte auslesen Netzwerkprogrammierung 7
D Daten per Server- Client nur als byte verschicken? Netzwerkprogrammierung 3
O JAVA hängt bei Dateikopie über LAN ein Byte an!!! ARGH Netzwerkprogrammierung 3
OnDemand Json Objekt leeres Array beim lesen Netzwerkprogrammierung 9
A Server Antwort enthält JSON Objekt/Array Netzwerkprogrammierung 8
precoc String Array versenden Netzwerkprogrammierung 7
U ein ganzes Array effizient übermitteln Netzwerkprogrammierung 6
H String Array durch einen Stream schicken. Netzwerkprogrammierung 4
J Array oder Object über Sockets Netzwerkprogrammierung 8
O Über Socket Array versenden Netzwerkprogrammierung 5
A array übers netzwerk (anfänger) Netzwerkprogrammierung 8
S Socket-Array vs. MulticastSocket Netzwerkprogrammierung 2
P Array per Socketverbindung versenden Netzwerkprogrammierung 2
P Probleme mit einem Array aus Sockets Netzwerkprogrammierung 2
J Prblem, wenn im verschickten Objekt ein Array ist Netzwerkprogrammierung 4
D Strings per Schleife zum Client senden Netzwerkprogrammierung 4
M while-Schleife funktioniert nicht bei Nachrichtempfang von Server Netzwerkprogrammierung 3
S Socket Thread in Schleife Netzwerkprogrammierung 4
F Chat Programm. Verständnisfrage while-Schleife Netzwerkprogrammierung 7
J while-Schleife / Abbruchbed. beim Einlesen eines Streams Netzwerkprogrammierung 4
Y server mit endlosse schleife beenden Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben