ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
674
674
EMPFEHLEN
-
Hallo,
ich habe einen Java NIO Server, dieser erwartet am anfang des Datenpaketes immer ein Integer (4 byte) welches die Länge des Pakets angibt.
In einem Java Client habe ich die Kommunikation so realisiert:
Code :1 2 3 4 5 6 7 8
cb.clear(); bb.clear(); cb.append("Hallo Welt :)"); cb.flip(); bb.putInt(cb.remaining()); // <--- encoder.encode(cb, bb, true); bb.flip(); sc.write(bb);
cb = java.nio CharBuffer
bb = java.nio ByteBuffer
encoder = CharsetEncoder
Das ganze klappt wunderbar der Server bekommt Hallo Welt und gibt es aus.
Nun hab ich versucht einen C# Client zu erstellen und zwar mit diesem Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
TcpClient client = new TcpClient(); client.Connect("localhost", 1234); NetworkStream stream = client.GetStream(); string message = "Hallo Welt"; MemoryStream meoryStream = new MemoryStream(); using (BinaryWriter writer = new BinaryWriter(meoryStream)) { Encoding ascii = Encoding.ASCII; writer.Write(message.Length); writer.Write(ascii.GetBytes(message)); } byte[] data = meoryStream.ToArray(); stream.Write(data, 0, data.Length);
Hier bekommt mein Java Server zwar auch "Hallo Welt", erwartet aber noch ~ 167772150 bytes mehr.
Der Schluss zu dem ich gekommen bin ist, dass etwas mit der Zahl am Anfang des Pakets nicht stimmen kann, aber ich weiss nicht was
Ich hoffe mir kann jemand helfen!!
Der Server extrahiert die Zahl mit
bb = java.nio ByteBufferCode :1
bytesToRead = bb.getInt();
mfg
-
Vielleicht stimmt die ByteOrder beim Integer nicht.
MSDN sagt mir, dass Integers im Little Endian-Format gespeichert werden. Macht Java das auch so?
Vergleiche mal die Bytes, die den Integer repräsentieren sollen. Stimmen diese Bytes in C# und Java überein?
Ähnliche Themen
-
0 terminierten String aus ByteBuffer lesen
Von FBIagent im Forum JavaAntworten: 0Letzter Beitrag: 22.09.10, 22:32 -
Websphere startup beans --> equivalent in JBOSS?
Von ChrisJava im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 9Letzter Beitrag: 14.05.09, 11:32 -
Javas Mikrochip Pizza. (CD Auswurf)
Von Stigma im Forum JavaAntworten: 4Letzter Beitrag: 06.12.07, 17:13 -
Get / Set - Equivalent in Java wie in .NET ?
Von MasterEvil im Forum JavaAntworten: 2Letzter Beitrag: 05.12.05, 10:11 -
java.nio.channels und Übertragung von ByteBuffer
Von HPB im Forum JavaAntworten: 1Letzter Beitrag: 18.01.05, 15:26





Zitieren
Login





