JNI - Große Daten übertragen

Status
Nicht offen für weitere Antworten.

Illuminatus0301

Aktives Mitglied
Nabend zusammen,
ich schreib gerade ein Programm mit nativen C++ Code. Jetzt müssen manchmal nur relativ häufig (ca. 100 pro sek.) große Menge an Daten (ca 1kB) übertragen werden, ich könnte das ganze zwar in einen String umwandeln, aber dann würde ich die ganzen daten insgesamt zweimal im Hauptspeicher rum kopieren (wegen der konvertierung zum string) und das dürfte nicht ganz so performant sein. Also brauch ich eine Möglichkeit die Bytes im Speicher aus c++ frei zu geben und, was schwieriger werden dürfte, eine Möglichkeit von Java direkt auf den Speicher zuzugreifen. Theoretisch müsste das ja gehen, da jeden OS ein Hauptspeicher hat, aber ich wüsste nicht, wie man das machen könnte.
Es muss auch nicht zwingend platform unabhängig sein, da das Programm sowieso nur unter Windoof laufen wird!
Ich hoffe jemand kann mir dabei helfen.
MfG
Illuminatus
 
T

tuxedo

Gast
Naja, würde das über eine Socketverbindung über localhost lösen.
Während meines Praxissemesters musste ich ein CAN-Interface, welches nur eine C-DLL hatte, an Java anbinden. Da auf dem CAN-Bus Megabyteweise Daten rumschwirren können musste das ganze sehr performant sein. Da java in einer abgeschlossenen VM läuft bliebt da eigentlich nur JNI oder der weg über Localhost.

Eine JNI-Implementierung gabs schon. Aber das ist bei vielen Aufrufen und Datenpacketen ganz schön stressig/unperformant.

Die Socketverbindung brachte da einen richtigen Schub in die Geschichte.

- Alex

P.S. häufig große Mengen an Daten sind aber nicht 100 mal pro Sekunde 1kbyte = 100kbyte/sek ... Das sind ja noch "peanuts" ;-)
 

Illuminatus0301

Aktives Mitglied
Danke, ich werd das mal versuchen. Ich wusste nur nicht, wie vie Zeit das brauchen wird, wenn der erst die Daten auf die oberen Netzwerkschichten schickt!
 
T

tuxedo

Gast
Soweit ich das ermitteln konnte gehen die Daten nicht wirklich runter bis zur Netzwerkkarte sondern werden scheinbar direkt über'n RAM von A nach B gebracht. Ist jedenfalls performanter als die Datenübertragung mit JNI

- Alex
 

Illuminatus0301

Aktives Mitglied
ich brauch nochmal deine Hilfe für die Sockets, das klappt bei mir irgendwie nicht. Ich bekomm immer einen "WSA ERROR 10057" aus der send() Methode. Das ist der WSAENOTCONN Fehlercode: "The socket is not connected."

Hab noch nicht so viel Erfahrung mit Sockets bei C++, ich poste einfach mal den Code:

Java
Code:
try {
	Socket s = new Socket("192.168.2.103", 2048); //ich habs schon mit 127.0.0.1 versucht, da bekomm ich einen "Connection refused"-Error
	InputStream in = s.getInputStream();
	int b;
	while((b = in.read()) != -1) {
		System.out.print(b);
	}
			
	in.close();
	s.close();
} catch (IOException e) {
	e.printStackTrace();
}

C++ (gekürzt)
Code:
#include <iostream>
#include <winsock2.h>

int main()
{	
	WSADATA wsa;
        WSAStartup(MAKEWORD(2, 0), &wsa);
	SOCKET s = socket(AF_INET, SOCK_STREAM, 0);

	struct sockaddr_in addr;
	addr.sin_addr.s_addr = inet_addr("192.168.2.103");
	addr.sin_port = htons(2048);
	addr.sin_family = AF_INET;
        bind(s, (struct sockaddr*)&addr, sizeof(addr)) ;
	listen(s, 1) ;
	struct sockaddr_in cli;
	int cli_size = sizeof(cli);
	int c = accept(s, (struct sockaddr*)&cli, &cli_size);

	char data[] = "Hello Socket\r\n";
	send(s, data, sizeof(data), 0);
	closesocket(s);

	return 0;
}
 
T

tuxedo

Gast
Bin in C/C++ nicht so fit dass ich das auswendig kann (ist auch 2 Jahre her dass ich sowas gemacht hab). C-Fragen gehören ja auch eher in ein C-Forum. Weiß nicht ob hier so viele C-Kenner rumschwirren ..

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
B Welcher Datentyp für sehr große Zahlenbereiche? Allgemeine Java-Themen 1
F Große Datenmengen effizient programmieren Allgemeine Java-Themen 51
N Das große O berechnen Allgemeine Java-Themen 2
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
R Große Zahlen in Worten abkürzen Allgemeine Java-Themen 10
K Große JSON-Dateien schnell und effizient verarbeiten Allgemeine Java-Themen 16
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
P Große Datenstruktur im Speicher halten Allgemeine Java-Themen 13
M Einfluss von Caching auf die Performance (große Arrays) Allgemeine Java-Themen 24
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
P Datentypen Große Datenmenge Sortiert halten Allgemeine Java-Themen 12
D große Textdatei filtern Allgemeine Java-Themen 13
M Große Datei mit Regex durchsuchen Allgemeine Java-Themen 4
R POI große Exceldatei schreiben Allgemeine Java-Themen 7
R Dateigestützte Collection für große Datenmengen Allgemeine Java-Themen 5
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
trash Das große Problem: .jar Archiv Allgemeine Java-Themen 19
J Große Datei einlesen und gestückelt verarbeiten Allgemeine Java-Themen 4
I Große Datei am effektivsten/performantesten auslesen und auswerten? Allgemeine Java-Themen 6
S große CSV-Dateien Importieren. Beste Lösung ?! AWS,S3,Hadoop!? Allgemeine Java-Themen 4
P große double Zahlen und modulo Allgemeine Java-Themen 8
O Große Anzahl Bilder laden Allgemeine Java-Themen 7
A Mit RegEx große Dokumente erfassen Allgemeine Java-Themen 14
X Wie verdammt große Datein öffnen? Allgemeine Java-Themen 2
G Große Datenmengen per JDBC Allgemeine Java-Themen 5
P Große Datenmenge wie speichern (HashMap? TreeMap?) Allgemeine Java-Themen 11
G Große XML-Dateien einlesen und auswerten . Allgemeine Java-Themen 2
P Performance: Ziehen ohne Zurücklegen (große Datenmenge) Allgemeine Java-Themen 10
T Große Dateibestände löschen - Speicherproblem Allgemeine Java-Themen 20
S Große ArrayListen Allgemeine Java-Themen 8
S große Datei einlesen! Allgemeine Java-Themen 7
J Große Zahl (double) as text ausgeben? Allgemeine Java-Themen 2
S Kleines Eclipse Problem, große Wirkung Allgemeine Java-Themen 7
H Referenzen statt Objekte für große Speicherstrukturen Allgemeine Java-Themen 19
K Große Herausforderung Allgemeine Java-Themen 2
F Zu große Werte beim byteweisen Lesen mit BufferedReader.read Allgemeine Java-Themen 5
D Große Klasse - was fällt euch so ins Auge? Kritik bitte! Allgemeine Java-Themen 10
M Große Dateien laden Allgemeine Java-Themen 2
F Große Dateien schnell einlesen Allgemeine Java-Themen 14
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
padde479 Collections Daten in Dreiecksform Allgemeine Java-Themen 13
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
S Webservices für binäre Daten? Allgemeine Java-Themen 5
OnDemand Daten in RAM zwischenspeichern oder lieber aus DB holen? Allgemeine Java-Themen 24
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
S Entities aus XML - Daten. Allgemeine Java-Themen 1
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
J Daten von Quelltext Allgemeine Java-Themen 5
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
J Jasper Reports - Daten vom Hoster Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
J Millisekunde zwischen 2 Daten Allgemeine Java-Themen 6
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
R Android Daten online senden Allgemeine Java-Themen 0
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
S Erste Schritte Fehlender Gedanken-Ansatz bei Interpretation von Daten Allgemeine Java-Themen 1
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
A Swing FileWriter schreibt keine Daten in Datei Allgemeine Java-Themen 13
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
D Best Practice Login-Daten: Wie am besten abrufen? Allgemeine Java-Themen 6
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
J Serial Port Daten empfangen Allgemeine Java-Themen 5
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
J Daten persistent speichern Allgemeine Java-Themen 14
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
G Daten aus Website auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
N Zeitabstand zwischen 2 Daten(Mehrzahl von Datum) Allgemeine Java-Themen 3
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Z daten bindung Allgemeine Java-Themen 1
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
Todesbote Excel Blattschutz aufheben und Daten einfügen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
OnDemand PC identifizieren / Daten auslesen Allgemeine Java-Themen 15
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben