tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
249
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    XanderFlash XanderFlash ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    8
    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
     

  2. #2
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    Indem du short, in dem sich 345 darstellen lässt in zwei Bytes aufteilst, und am anderen Ende wieder zusammensetzt.
     

  3. #3
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    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?
     

  4. #4
    XanderFlash XanderFlash ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    8
    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.
     

  5. #5
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    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:
    Code java:
    1
    2
    3
    4
    
    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
     

  6. #6
    XanderFlash XanderFlash ist offline Rookie
    Registriert seit
    Jan 2010
    Beiträge
    8
    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
     

  7. #7
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Wieso sich rumquälen, wenn es bereits jemand für dich getan hat? Mit DataOutputStream lassen sich alle primitiven Datentypen übertragen.
    http://java.sun.com/j2se/1.4.2/docs/...putStream.html
     

Ähnliche Themen

  1. In und Outputstream
    Von DerKoenig im Forum Java
    Antworten: 2
    Letzter Beitrag: 17.01.11, 17:23
  2. Antworten: 1
    Letzter Beitrag: 26.07.10, 16:28
  3. Antworten: 10
    Letzter Beitrag: 06.03.10, 20:51
  4. input-/outputstream
    Von iakchos im Forum Java Grundlagen
    Antworten: 1
    Letzter Beitrag: 29.12.08, 07:17
  5. Antworten: 3
    Letzter Beitrag: 02.11.01, 23:07