Async Read, Portierung aus C#

MasterEvil

Erfahrenes Mitglied
Hiho, ich versuche gerade ein C# Streaming Tool nach Java zu portieren.
Ich muss zu einem Stream eine Asynchrone Verbindung aufbauen, in C# ist das mit wenigen zeilen erledigt. Ich hab jetzt ne Weile für Java gesucht und das einzigste was ich so finden konnte ist NIO und AIO4J von IBM. Bei beidem findet man aber nur dürftig Beispiele bzw. sind die Informationen zu beidem schon 2- 3 Jahre alt. Was aktuelles konnte ich leider nicht finden.

Das ist mein C# Equivalent welches ich gerne nach Java portieren möchte, vieleicht kann mir ja einer helfen :(
PHP:
public byte[] Buffer = null;
public int UsedLength = 0;
System.IAsyncResult ReadAsyncResult = null;

public void BeginRead(System.IO.Stream s) {
	ReadAsyncResult = s.BeginRead(Buffer, 0, Buffer.Length, null, null);
}

public void EndRead(System.IO.Stream s) {
	UsedLength = s.EndRead(ReadAsyncResult);
}
 
Definieriere Asynchrone Verbindung.

Was willst du asynchron verschicken? Was für Daten und geschieht das in einem Applikation Server oder nicht? Musst du deine Daten über ein ByteArray verschicken?

Wenn das im ApplicationServer geschieht kannst du deine Daten auch per JMS verschicken. Komplette Objecte mit einer ObjectMessage.

Aber mir ist nicht ganz klar was du bezwecken willst.

Ansonsten wirst du im NIO Package fündig werden. Es gibt da aber massiv neue Tutorials für :)
http://java.sun.com/j2se/1.4.2/docs/guide/nio/
http://www.onjava.com/pub/a/onjava/2004/09/01/nio.html
http://www.cs.brown.edu/courses/cs161/papers/j-nio-ltr.pdf
http://java.sun.com/j2se/1.4.2/docs/guide/nio/example/index.html
 
Christian Fein hat gesagt.:
Definieriere Asynchrone Verbindung.

Was willst du asynchron verschicken? Was für Daten und geschieht das in einem Applikation Server oder nicht? Musst du deine Daten über ein ByteArray verschicken?


THx schonmal für die Links :) da muss ich mich erstmal durchlesen.

Das Tool was ich portieren will ist eine Streaming Engine welche Audio/Video-Daten von einem Reciever per UDP empfängt. Die gesendeten Pakete werden numeriert und sollten welche fehlen werden diese per TCP neu angefordert. Die Übertragung muss asynchron funktionieren, also Daten werden angefordert und dann wird im Hintergrund ein ByteArray gefüllt.

Wie man merkt hab ich auch noch nicht so ganz den Durchblick *g* .. ich brauche halt irgend ein Equivalent zu den C# Funktionen BeginRead() und EndRead()
Vermutlich muss ich das irgendwie über extra Threads realisieren oO
 
Zurück