byte [] demande = neues Byte [2]; Nehmen wir an, dass demande ein Datenrahmen ist, der an einen Socket gesendet wird. Was sollte Byte [0] und Byte [1] sein, wenn ich 200 senden möchte. Ich versuche, Byte [0] = 1 und Byte [1] = - 56 (1 * 256 - 56) = 200 schreiben, aber es nicht ' t arbeiten. Wie kann ich?Tdata-Frame an Socket senden
0
A
Antwort
1
Ich nehme an, dass die Zahl 200 ein Dezimalwert ist. Da 200 kleiner als 255 ist, passt es in ein Byte, da der hexadezimale Wert von 200 0xC8 ist.
Also in Ihrem Fall haben Sie zwei Möglichkeiten. Welche davon korrekt ist, hängt vom verwendeten Protokoll ab.
Entweder
byte[] demande = { 0x00, 0xC8 }; // little endian
oder
byte[] demande = { 0xC8, 0x00 }; // big endian
Oder wenn Sie bevorzugen
byte[] demande = new byte[2];
demande[0] = 0x00;
demande[1] = 0xC8;
(Little Endian)
1
Sie die ByteBuffer-Klasse verwenden, kann eine erstellen Byte-Array. Wenn Sie wollte die ganze Zahl 200 zu einem Byte-Array konvertieren:
ByteBuffer b = ByteBuffer.allocate(2);
b.putInt(0x000000c8);
byte[] result = b.array();
Verwandte Themen
- 1. Senden Objekt über Socket
- 2. Raw Socket NICHT senden
- 3. Node.js Socket senden und empfangen
- 4. Senden einer Nachricht an bestimmte Client in Socket IO
- 5. Wie senden Sie Strg + C an Telnet-Socket in PHP?
- 6. Senden Zeichenfolge über Socket (Python)
- 7. Senden von Strings über Socket
- 8. C# senden Strukturobjekte über Socket
- 9. Video-Frame über Socket senden
- 10. Tcp Socket-Server nicht senden
- 11. C# Socket Server Frage senden
- 12. NodeJS Socket-Programmierung - senden Datenlänge
- 13. Java Socket Senden von Daten
- 14. Senden/Empfangen von Bildern mit Socket
- 15. Senden von Daten über den AF_PACKET-Socket
- 16. Swift senden Hex-Daten über TCP-Socket
- 17. JSP-Socket nur einmal senden Zeichenfolge
- 18. Senden von Android-Sensordaten über UDP-Socket
- 19. Senden Sie 5MB Daten über einen Socket?
- 20. Erlang Socket Senden Timeout passiert nie
- 21. Senden von Tastatureingabedaten über Socket mit C++
- 22. Senden einer Binärdatei über einen Java-Socket
- 23. Android große Dateien über Socket senden
- 24. Kann keine Socket-Nachricht vom Client senden
- 25. Raw Socket Linux senden/empfangen ein Paket
- 26. Senden php Senden an MySQL
- 27. Senden von 2 Nachrichten getrennt mit Socket
- 28. Senden und Empfangen von Objekten mit Socket
- 29. C# senden gemischte Daten über den Socket
- 30. Int über Socket in Java senden
0xC8 nicht akzeptiert wird, wird max 0x80 akzeptiert, weil ich sein ein Byte -128 bis 128 – pape
@pape unterzeichnet denken, ohne das Protokoll für das Gerät lesen Sie mit ihm zu kommunizieren ist schwierig, besseren Rat zu geben. Sie könnten versuchen, drei Bytes wie Byte [] demande = {'2', '0', '0'} zu senden; wenn es ein ASCII-Protokoll ist. –
Nein, es ist kein ASCII-Protokoll es ist UTF-8 – pape