Little Endianess - Senden von Daten

Ch3ck3r

Mitglied
Hallo Community,

nach über einem Jahr wage ich mich endlich wieder an Java heran.
Um ehrlich zu sein, ich habe wieder die Arbeit an dem Projekt aufgenommen an dem ich damals scheiterte. Es ging darum Daten zwischen einem Server und einem Java Client hin- und herzuschicken.
Das Problem dabei war, dass der Server mit unsigned long (32 bit) und little endian arbeitet.

Nun der Server arbeitet nach wie vor nach dem gleichen Prinzip, doch 2 Semester Studium haben mich erstaunlicherweise soweit gebracht, das der Empfang von Daten des Servers nun problemlos und vorallem auf Anhieb geklappt hat - auch wenn ich im Studium nichts mit Java zu tun hatte.

Der Datenversand läuft immer auf die gleiche Art und Weise ab.
Ich frage 4 byte vom Server ab, die mir (little Endian) mitteilen, wie groß die folgende binärkodierte Nachricht sein wird. Das klappt problemlos.

Zum Testen habe ich erstmal alles in der main() Methode stehen und das sieht so aus
Java:
public static void main(String[] args) throws UnknownHostException, IOException {
		Socket socket;
		PrintWriter out = null;
        BufferedReader in = null;
		socket = new Socket("178.63.14.142", 5000);
		in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		out = new PrintWriter(socket.getOutputStream(), true);
		int c1 = in.read();
		int c2 = in.read();
		int c3 = in.read();
		int c4 = in.read();
		int length = (c4 << 32) + (c3 << 16) + (c2 << 8) + c1;
		String handshake = new String();
		for(int i = 0; i < length; ++i) {
			handshake += (char) in.read();
		}
		System.out.println(handshake);
	}

Meine Frage bezieht sich nun auf das Senden. Wenn ich meine Nachricht kodiert habe, kann ich ihre Länge mit String.length() abfragen. Nun müsste ich den Schritt
Java:
int length = (c4 << 32) + (c3 << 16) + (c2 << 8) + c1;
"rückwärts" machen, und da komme ich nicht weiter.

Bin für alle Tipps offen,

grüße Frank
 

LoR

Bekanntes Mitglied
Also wenn du die ganze Sache nicht selbst schreiben möchtest, wie wäre es mit der Klasse ByteBuffer aus dem java.nio - Package? Die sollte alle Möglichkeiten bieten die du benötigtst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Wo steht, ob eine Datei big, little oder bi-endian codiert ist? Java Basics - Anfänger-Themen 3
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
M Fragen zu Little / Big Endian Java Basics - Anfänger-Themen 7
K Integer in Hex (Little Endian) konvertieren Java Basics - Anfänger-Themen 8
Z E-Mail senden mit Bibliotheken Java Basics - Anfänger-Themen 1
C Bytearray senden via SerialPort Java Basics - Anfänger-Themen 7
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
G Email senden MailDev Java Basics - Anfänger-Themen 13
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
T Datei seriell senden Java Basics - Anfänger-Themen 42
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
L Text/Befehle zu Programmen senden Java Basics - Anfänger-Themen 1
F String zu einem Server senden Java Basics - Anfänger-Themen 4
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
M Input/Output Allg. Befehle an die cmd.exe senden Java Basics - Anfänger-Themen 9
fLooojava Bluetooth Projekt - Problem beim mehrmaligen Senden Java Basics - Anfänger-Themen 5
M Int wert in ActionEvent senden Java Basics - Anfänger-Themen 4
A Pfadangabe Datei senden Java Basics - Anfänger-Themen 14
S Hilfe!! Senden eine Bestätigungsmail Java Basics - Anfänger-Themen 3
C "Signal" senden Java Basics - Anfänger-Themen 2
J Funktion um JSON per Post senden/emfangen Java Basics - Anfänger-Themen 3
H Objekt zu groß zum Senden? Java Basics - Anfänger-Themen 6
E Senden von Objects an Client. Variablenwerte kommen nicht an Java Basics - Anfänger-Themen 5
P Probleme bei senden eines Strings übers Netzwerk Java Basics - Anfänger-Themen 4
E SMS senden Java Basics - Anfänger-Themen 3
U E-Mails mittels Java senden. Java Basics - Anfänger-Themen 2
M bild mit httpPost senden Java Basics - Anfänger-Themen 8
B Object an Server senden, Server antwortet mit objekt? Java Basics - Anfänger-Themen 7
M String senden/empfangen mit PHP funktioniert nicht Java Basics - Anfänger-Themen 2
T Daten über Com Port senden Java Basics - Anfänger-Themen 2
G Datei an PHP Script senden und speichern Java Basics - Anfänger-Themen 2
D Daten an Formular senden Java Basics - Anfänger-Themen 4
T Tastatur Tasten Senden Java Basics - Anfänger-Themen 4
M Mail senden - Problem connect to SMTP host Java Basics - Anfänger-Themen 5
Blackskyliner Befehle an einen Thread senden? Java Basics - Anfänger-Themen 2
M Bitmuster eines Strings über RS232 senden Java Basics - Anfänger-Themen 5
S 2x per GET senden Java Basics - Anfänger-Themen 6
B Bild/Datei von einem Server an einen Client senden Java Basics - Anfänger-Themen 6
M Mails zum Server senden der Authentisierung benötigt Java Basics - Anfänger-Themen 3
H String mit UDP senden Java Basics - Anfänger-Themen 10
M Warum kann man dem Thread kein notify senden? Java Basics - Anfänger-Themen 15
G String zur RS232 senden und mit cr abschließen! Java Basics - Anfänger-Themen 4
O Post senden an php script. Java Basics - Anfänger-Themen 20
G Post-Methode senden Java Basics - Anfänger-Themen 4
C string über server/client verbindung senden ? Java Basics - Anfänger-Themen 4
H Befehl zum FTP-Server senden?? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben