2011-03-23 160 views
2

我一直想让闪存接收来自我拥有的小型串行到IP转换器的TCP消息。使用其他软件,我可以看到消息通过,所以我知道它有效。 从闪存我尝试过使用一个套接字和一个XML套接字,但我不知道我在做什么,我设法得到一个连接,但它似乎不输出数据,或触发事件时数据被接收。 不知道我对此有正确的方式,任何帮助将不胜感激。TCP客户端闪存AS3

感谢

+0

是您的服务器在线运行还是本地运行?如果它在线,让我知道URI和端口,然后我会发布一个片段,前一天写了一个简单的TCP客户端,所以不应该为你写一个片段。 – Zevan 2011-03-23 17:38:13

+1

查看[本教程](http://gotoandlearn.com/play.php?id=69)关于二进制套接字的基础知识。这个例子适用于pop服务器,但概念很相似。 – Sam 2011-03-23 18:15:03

+0

它在本地运行,它只是其中一个:以TCP模式运行的http://tibbo.com/products/controllers/ds203.html。我将通读这篇教程和文章,并让大家知道它是否将它整理出来。谢谢! – 2011-03-24 09:10:59

回答

3

以下是我用于使其工作的代码。谢谢你们的帮助。

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

我的猜测是,你很可能击中的安全限制。 Flash需要通过套接字连接到任何服务器的权限,它会在端口843上寻找权限,以及用于绕过它的一些示例代码。如果您无法直接访问您尝试连接的服务器,则可能需要使用代理服务器进行探索。