Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-12-2005, 15:50   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 28
Datentyp Byte in Flash MX 2004?

Hi Leute,


bin gerade dabei mit Flash MX2004 eine XMLSocket Verbindung zu einem JavaServer aufzubauen. funcktioniert auch super, das Problem ist nun, dass der Server nur Anfragen akzeptiert, wenn am Anfang ein Byte gesendet wird, welches die Länge der gesendeten Zeichenfolge angibt.

Tja, und wie bekomme ich das nun hin, die Länge als Byte zu senden? MX2004 hat ja leider keinen Datentyp Byte, gibt es da vielleicht eine Möglichkeit, so ein Byte quasi zu simulieren?


Wäre superdankbar über Antworten,

Sönke
soenke ist offline   Mit Zitat antworten
Alt 19-12-2005, 21:56   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
String.fromCharCode(64);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 20-12-2005, 10:09   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 28
Verstehe ich nicht ganz, das gibt mir das Zeichen des angegebenen ASCII-Codes als String zurück, in deinem Beispiel '@'.

Blick ich da grad falsch oder hat das mit Bytes wenig zu tun?
soenke ist offline   Mit Zitat antworten
Alt 20-12-2005, 13:45   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Ob eine Variable ein Byte, ein Buchstabe, eine Zahl oder was auch immer "ist", hängt nicht vom Inhalt der Variable ab, sondern davon, wie der Leser die Variable, bzw. den Speicher, der der Variable zugeordnet ist, interpretiert. Der Flash XMLSocket verschickt ja nur Strings, was Java daraus macht, ist ganz allein die Sache von Java. Soweit ich mich erinnere, geben die ersten beiden Bytes die Länge an. Jetzt ist nur noch die Frage, ob big oder little endian

mfg. r
bokel ist offline   Mit Zitat antworten
Alt 20-12-2005, 15:25   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 28
das hört sich schon verdächtig nach meinem problem an, allerdings muss ich gestehen, ich habe nur die hälfte vom wikipedia-link verstanden.

konkret in meinem fall weiss ich, dass der server am anfang der anfrage 8 bytes erwartet. diese 8 bytes stellen zwei integerwerte dar (1. Länge der Zeichenkette / 2. Pakettyp [ist hier -2]). ein integer wird also in 4 bytes kodiert. hmmmm, soweit klar. mir würde jetzt mal ein konkretes beispiel für flash helfen.

z.b. wie kodiere ich die zahl 154 in 4 bytes?
soenke ist offline   Mit Zitat antworten
Alt 20-12-2005, 17:10   #6 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Das ginge so:
PHP-Code:
var bigEndian chr(0) + chr(0) + chr(0) + chr(154);
var 
littleEndian chr(154) + chr(0) + chr(0) + chr(0); 
Das Problem ist nur, dass du mit Flash kein 0 Byte verschicken kannst, weil 0 als das Ende des Strings gedeutet wird.

mfg. r
bokel ist offline   Mit Zitat antworten
Alt 20-12-2005, 21:40   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
nur der vollständigkeit halber für soenke aus dem handbuch (bokel weiss das):

chr(number:Number): String
Veraltet seit Flash Player 5. Diese Funktion gilt als überholt und wurde durch String.fromCharCode() ersetzt.

--------
hatte halt angenommen, das jemand der dabei ist "eine XMLSocket Verbindung zu einem JavaServer aufzubauen" soviel vom programmieren versteht, das die zahl in der klammer nur stellvertretend für irgend eine zahl steht. naja - man kann sich täuschen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (20-12-2005 um 21:43 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 21-12-2005, 10:27   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 28
danke bokel,

bin dann gestern abend auch auf das problem mit dem nullbyte gestossen, ansonsten sehe ich jetzt klar.


@hgseib: ui ui, kollege, nicht aufregen! dass die zahl stellvertreter ist, ist mir glasklar. das war hier eher ein verständnisproblem, mir war nicht klar, dass ein ASCII-Zeichen ein Byte darstellt, bin halt autodidakt und da fehlen manchmal die entscheidenden informatik-grundkenntnisse. nichts für ungut...


g.sönke
soenke ist offline   Mit Zitat antworten
Alt 21-12-2005, 14:35   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 28
Tja, stelle fest, dass Flash hier wohl an seine Grenzen stösst. XMLSocket sendet alle Daten als UTF-8 codierten String raus, d.h. ich kann nur maximal die zahl 127 verschicken, alle größeren Werte werden in mehrere Bytes gesplittet und der Server kann mit diesen Bytes wegen der UTF-8 Codierung nichts sinnvolles anfangen.


TOO bad.
soenke ist offline   Mit Zitat antworten
Alt 21-12-2005, 16:24   #10 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Kannst du nicht den Server ändern?
Oder du schaust dir mal die FlexBuilder Alpha an, der neue Player kann nämlich auch binäre Socketkommunikation.
mfg. r
bokel ist offline   Mit Zitat antworten
Alt 21-12-2005, 20:47   #11 (permalink)
Neuer User
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 28
Nach langer Diskussion hat der ServerEntwickler diese Anforderung rausgenommen. Es geht also manchmal auch anders.

Zumindest bin ich mal so richtig schön im Urschleim der Informatik spazieren gewesen...
soenke ist offline   Mit Zitat antworten
Alt 22-12-2005, 09:05   #12 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
*G*

r.
bokel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele