T
tuxedo
Gast
Hallo,
ich muss einen Treiberwrapper fuer eine Interfacekarte schreiben der den C-Treiber auf Java adaptiert.
Fuer die initiellen Einstellungen verwende ich JNI. Fuer die Rohdaten will ich Sockets einsetzen und das ganze somit evtl sogar noch netzwerkfaehig machen.
Sockets habe ich deshalb gewaehlt weil hier direkt und ohne Umwege kommuniziert wird. Beim Transfer kommt es auf sehr exaktes Timing und Geschwindigkeit an. Da gehen schon Megabyteweise Daten durch.
auf der C Seite kommen beim Treiber Messages an die aus mehreren Informationen bestehen die in einzelnen Variablen verpackt sind. IDs, Roh-Daten und noch ein paar Parameter.
Sagen wir eine Message besteht aus 2 Ints, 1 String und einem Byte-Array. Dies Daten muessen auf der C-Seite in den Socket rein und auf der Java-Seite aus einem Bytestream oder sowas wieder raus.
Auf beiden Seiten laufen je 2 Threads die die Daten entgegennehmen und weiterschicken. Also ein Thread fuer TX und einer fuer RX.
Kann mir jemand Tipps geben wie man aus einem Byte-Stream ind Java wieder die Informationen rausliest ? Also z.B. nacheinander wieder 2 Ints, 1 String und ein Byte-Array macht wenn auf der senden Seite ein C-Programm steht das die Daten bei sich in den socket reinfuettert?
Ein Tipp wo man sowas nachlesen kann wueder mir ja auch schon reichen.
Gruss
Alex
ich muss einen Treiberwrapper fuer eine Interfacekarte schreiben der den C-Treiber auf Java adaptiert.
Fuer die initiellen Einstellungen verwende ich JNI. Fuer die Rohdaten will ich Sockets einsetzen und das ganze somit evtl sogar noch netzwerkfaehig machen.
Sockets habe ich deshalb gewaehlt weil hier direkt und ohne Umwege kommuniziert wird. Beim Transfer kommt es auf sehr exaktes Timing und Geschwindigkeit an. Da gehen schon Megabyteweise Daten durch.
auf der C Seite kommen beim Treiber Messages an die aus mehreren Informationen bestehen die in einzelnen Variablen verpackt sind. IDs, Roh-Daten und noch ein paar Parameter.
Sagen wir eine Message besteht aus 2 Ints, 1 String und einem Byte-Array. Dies Daten muessen auf der C-Seite in den Socket rein und auf der Java-Seite aus einem Bytestream oder sowas wieder raus.
Auf beiden Seiten laufen je 2 Threads die die Daten entgegennehmen und weiterschicken. Also ein Thread fuer TX und einer fuer RX.
Kann mir jemand Tipps geben wie man aus einem Byte-Stream ind Java wieder die Informationen rausliest ? Also z.B. nacheinander wieder 2 Ints, 1 String und ein Byte-Array macht wenn auf der senden Seite ein C-Programm steht das die Daten bei sich in den socket reinfuettert?
Ein Tipp wo man sowas nachlesen kann wueder mir ja auch schon reichen.
Gruss
Alex