OutputStream mit Zahlen > 255

XanderFlash

Grünschnabel
Guten abend alle zusammen,

ich hab eine frage zum OutputStream. Ich möchte eine Integerzahl wie 345 an einen Server schicken, aber der Stream kann nur bis 255 übertragen. Wodran das liegt sieht man ja auch ziemlich schnell und zwar, dass der Stream nur Bytes sendet.

wie bekomme ich jetzt aber hin die zahl 345 zu schicken und auch auf der anderen seite wieder als integer zu lesen.


mfg XanderFlash
 
Indem du short, in dem sich 345 darstellen lässt in zwei Bytes aufteilst, und am anderen Ende wieder zusammensetzt.
 
Erwartet der Server irgendein bestimmtes Format oder ist es ein selbstgeschriebener?
Wenn du ihn selber schreibst: Teil die Zahl doch einfach in Zwei Byte auf
Für das eine durch 256 dividieren (int, also Kommastellen ignorieren); für das andere modulo 256.
Beim Empfänger setzt du das Ganze wieder zusammen, also (Byte1 mal 256) + Byte2
Wie groß können die Zahlen denn werden?
 
Die zahl kann bis ca. 2.000.000.000 gehen.


der server braucht die zahlen, die gesendet werden als integer, weil damit dann berechnungen angestellt werden sollen.

bei der größe wüsste ich jetzt nicht, wie ich das in bytes aufteilen könnte, da die zahl von 1 bis zu den 2.000.000.000 gehen kann.
 
Also 4 Byte.
Was ich mit dem Serverformat meine, ob du den Server selber schreibst und am Empfang und der Verarbeitung auch herumändern kannst, oder ob das "vorgegeben" ist.
Ich geh halt davon aus, das du ihn selber schreibst.

Nur als Beispiel:
Java:
byte zerlegen(int a,byte b){
    while(b>0){a/=256;b--;}
    return((byte)(a%256));
}
Das ganze am besten noch für ein Bytearray machen, dann kannst du es gleich schicken
 
sry, dann hab ich das nicht ganz verstanden

ja, den schreib ich selbst.


das was du gepostet hast sieht gut aus, ich probiers direkt mal aus.

thx
 
Zurück