Toon posts:

[JAVA - Flash - XML] String bevat rare tekens?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi

Ik ben net even wat aan het knutselen met java en flash.
In java heb ik een socket server (class ServerSocket) geschreven (3 classjes) met een in-(BufferedReader) en out-(PrintWriter) stream. Met de socket methodes getOutputStream() en getInputStream() voorzie ik de reader en writer van de data.
In flash gebruik ik de class XMLSocket om verbinding te maken met mijn java server. Met de methodes XMLSocket.send() en XMLSocket.onData() communiceer ik met de server.

Mijn vraag is als volgt: als ik met XMLSocket.send("<test>string</test>") de string "<test>string</test>" naar de server app verstuur, ontvangt de server "<test>string</test>[] ". [] = eigenlijk een (ascii?) vierkantje, jeweetwel... Hoe kan dat en hoe voorkom ik dat?? |:(
Nog een vraagje: waarom werkt de methode onData in flash niet als ik die outPutStream()/PrintWriter gebruik??

edit: dit is het teken wat achter de string verschijnt: 坛 ;)

[ Voor 11% gewijzigd door Verwijderd op 30-05-2004 18:21 ]


Verwijderd

zo'n ascii vierkantje zoals je het noemt, is meestal een karakter dat niet in het huidige lettertype is gedefinieerd. Ik vermoed dat er een extra CR of LF wordt weergegeven. Probeer de string eens vanuit een hexeditor te bekijken, als dat kan. Als je vierkantje dan een 0D is, dan is het een CR, of een 0A voor een LF.

Verwijderd

Topicstarter
dank je voor je reply, maar ik denk niet dat dat het is. Het zou namelijk betekenen dat ik nog een karakter meestuur achter de string "<test>string</test>", wat niet het geval is (bij mijn weten). Hoewel ik nu ineens bedenk dat flash misschien een parameter met xmlsocket.send meestuurd?? hoe dan ook, ik denk dat de string zelf het probleem niet is...

Verwijderd

Topicstarter
Vraag 1 is beantwoord: er scheen op de een of andere manier een spatie meegestuurd te worden; (String)theInput.trim() does the trick 8)7
Maar het pushen van de data naar de flashclient gaat nog niet helemaal goed: als ik het onderstaande uitvoer, wordt in flash de methode xmlsocket.onData() niet aangeroepen...
code:
1
2
3
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
outPutData = "test"; //hier wordt een methode aangeroepen die de juiste output returned
out.printl(outputData)

Verwijderd

Topicstarter
Ik ben eruit:
Kennelijk moet je de sessie (niet de connectie!) vanaf de server sluiten nadat de data is verzonden. Hoe doe je dat? nou, door achter de string die je verstuurd een 坛 te zetten :O
code:
1
out.printl(output + "&#22363;");


Mijn client/server doet het nu prima!

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
vroeg ik me af: waarom gebruik je geen FlashRemoting? Daarin is dit allemaal al voor je geregeld, en kun je rechtstreekse calls naar bijv. EJB's doen. Je hebt zelfs de beschikking over object (De)serializers (Java <-> ASO). Of is dat allemaal wat overkill voor wat het project in kwestie?

[edit] en niet onbelangrijk, ook security is geregeld (tot op zekere hoogte)

[ Voor 15% gewijzigd door zneek op 31-05-2004 11:03 ]


Verwijderd

Topicstarter
Ik wou in eerste instantie een app server die kan communiceren via xml en socket connecties accepteerd. Ik heb namelijk niet allen flash clients, ook applets en een cms gebouwd met java/jsp maken gebruik van de socket/xml server. Het voordeel hiervan is dat ik nu enkel mijn jar en classes in een mapje op een willekeurige pc kan gooien en vervolgens de hele boel (ex cms dan) met een commandline kan starten (bat bestandje). Daarnaast kan ik het aanpassen als dat nodig is en het is gratis :P
Wat betreft security in flashremoting denk ik dat het niet echt is wat ik zoek, nu heb ik meer "vrijheid" wat betreft security... ik ben zowieso niet echt onder de indruk van de security in flash (sockets).
Pagina: 1