Datei mittels TCP übertragen

Wie funktioniert jetzt dieser Transport**** Müssen beide Rechner das Script starten********
Oder wie stell ich mir das vor?
 
Hiho ich arbeite mich grade in NIO ein und versuche In einer Client - Server Architektur darauf basierend Objekte zu versenden (also richtige Object's).

Teilweise werden die Objekte sehr groß und sie werden zwar vom Server versendet kommen aber scheinbar nie beim Client an.

Ich setzte den schreiben Puffer auf 10 Mb und den lesen Puffer auf 20 Mb was auch nicht die lösung sein kann nehmen wir an es verbinden sich sehr viele Clients auf den Server dann ist dort der RAM erst einmal zu ^^

Hier mal meine Lese und Schreibe Methoden:

Schreiben:
Code:
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
			ObjectOutputStream oStream = new ObjectOutputStream( bStream );
			oStream.writeObject( o );
			byte[] byteArray = bStream.toByteArray();

			ByteBuffer objOutput = ByteBuffer.allocate( 10*1024*1024 );
			objOutput.clear();
			objOutput.put( byteArray );
			objOutput.flip();
			channel.write( objOutput );

Lesen:
Code:
                       ByteBuffer in = ByteBuffer.allocate( 20*1024*1024 );
				in.clear();
				 
				/* Read the input. Save how much was read. */
				channel.read( in );
				 
				ByteArrayInputStream bis = new ByteArrayInputStream( in.array() );
				ObjectInput oi = new ObjectInputStream( bis );
				
				o = oi.readObject();

Wie kann ich also das ganze besser Buffern ?
 
Sry, dass ich so ein altes Thema ausgrabe. Ich stehe gerade vor einer, für mich, grossen Aufgabe.
Wenn man verschiedene Ordner an verschiedene Locations in einem Netzwerk kopieren muss, wie würdet ihr da vorgehen? Kann ich hierfür das Bsp. von Thomas auch verwenden?
Könntet ihr mir da ein paar Anhaltspunkte bzw. Tipps geben wie ihr da vorgehen würdet.

edit: Grammatik geändert. Bitte um Entschuldigung.
 
Zuletzt bearbeitet:
Zunächst mal würde ich die Foren-Regeln befolgen wenn ich hier Hilfe haben will ...
Dazu zählt auch Regel15 : Orthografie und Grammatik ...
Glaub mir wenn ich dir sage : ich spreche aus Erfahrung das man sich hier nicht gerade Freunde macht wenn man Satzzeichen und Groß-/Klein-Schreibung vernachlässigt *mal so die Mods anschiel*.

Weiterhin : wenn du verschiedene Resourcen hast musst du diese nur in einer Liste übergeben und dann dann eine nach der anderen Abarbeiten. Auch würden sich hier Key-Value-Listen gut machen um neben der Quelle auch das Ziel angeben zu können. *Auch wenn das einem Missbrauchen dieses Prinzips gleichkommt.*

Ansonsten : die NIO-Variante von Thomas ist ganz gut und sollte man auch trotz ihres Alters mit Anpassungen so noch verwenden können.
 
Moin,
hätte da noch eine kleine Anmerkung wenn man den den Port danach noch mal verwenden möchte muss man noch
Code:
socketChannel.close();
aussführen.
Gruß Der Heilige
 
Zurück