2011-03-23 7 views
2

J'ai essayé de faire en sorte que Flash reçoive des messages TCP d'un petit convertisseur Serial to IP que j'ai. En utilisant un autre logiciel, je peux voir les messages qui arrivent, donc je sais que ça marche. A partir du flash J'ai essayé d'utiliser un socket et un socket XML mais je ne suis pas vraiment sûr de ce que je fais, j'ai réussi à obtenir une connexion mais il ne semble pas sortir les données, ou déclencher des événements les données sont reçues. Je ne suis pas sûr que je vais dans le bon sens à ce sujet, toute aide serait appréciée.TCP Client Flash AS3

Merci

+0

Votre serveur fonctionne-t-il en ligne ou localement? Si c'est en ligne, laissez-moi savoir l'URI et le port et je vais poster un extrait, juste écrit un client TCP simple l'autre jour, donc ne devrait pas être un gros problème pour écrire un extrait pour vous. – Zevan

+1

Jetez un coup d'œil à [ce tutoriel] (http://gotoandlearn.com/play.php?id=69) sur les bases du Binary Socket. Cet exemple est pour un serveur pop, mais le concept est similaire. – Sam

+0

Il fonctionne en local, c'est juste un de ceux-ci: http://tibbo.com/products/controllers/ds203.html fonctionnant en mode TCP. Je vais juste lire ce tutoriel et l'article publié ci-dessous et faire savoir à tout le monde si elle trie. Merci! –

Répondre

3

Voici le code que j'ai utilisé pour que cela fonctionne. Merci pour l'aide les gars.

import flash.events.Event; 
import flash.events.ProgressEvent; 
import flash.net.Socket; 

var RFIDSocket:Socket = new Socket(RFIDSocketIP,RFIDSocketPort); 

RFIDSocket.addEventListener(ProgressEvent.SOCKET_DATA, socketData); 

private function socketData(e:ProgressEvent):void { 
     var rawData:String = RFIDSocket.readUTFBytes(RFIDSocket.bytesAvailable); 
     var RFIDData:String = RFIDData.substring(1,11); 
     if(debugMode){ 
      MonsterDebugger.trace(this, RFIDData); 
     } 
     RFIDSocket.flush(); 
} 
1

Je suppose que vous frappe probablement des restrictions de sécurité. Flash a besoin d'une autorisation pour se connecter à n'importe quel serveur via une socket, il recherche une autorisation sur le port 843. Adobe has a pretty good document on the restrictions, ainsi qu'un exemple de code pour contourner ce problème. Si vous n'avez pas d'accès direct sur le serveur auquel vous essayez de vous connecter, vous devrez peut-être explorer à l'aide d'un serveur proxy.