【问题标题】:TCP Client Flash AS3TCP 客户端闪存 AS3
【发布时间】:2011-03-23 17:13:16
【问题描述】:

我一直在尝试让闪存接收来自我拥有的小型串行到 IP 转换器的 TCP 消息。使用其他一些软件,我可以看到消息通过,所以我知道它起作用了。 从 flash 我尝试使用 Socket 和 XML 套接字,但我不太确定自己在做什么,我设法建立了连接,但它似乎没有输出数据,或者在数据时触发事件收到。 不确定我是否采取了正确的方式,任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 您的服务器是在线运行还是本地运行?如果它在线,请告诉我 URI 和端口,我会发布一个 sn-p,前几天刚写了一个简单的 TCP 客户端,所以为你写一个 sn-p 应该没什么大不了的。
  • 看看this tutorial 了解二进制套接字的基础知识。这个例子是针对pop服务器的,但是概念是类似的。
  • 它在本地运行,它只是其中之一:tibbo.com/products/controllers/ds203.html 在 TCP 模式下运行。我将通读该教程和下面发布的文章,并让每个人都知道它是否解决了问题。谢谢!
  • 二进制套接字正在工作!非常感谢,得到一些无法识别的数据,但我可以很容易地摆脱它。我对这个网站相当陌生,似乎无法将你的答案作为答案,也许是因为它是一个评论。无论如何,再次感谢!
  • 您应该将您的解决方案写成答案,然后将其标记为解决方案。这样,未来的 StackOverflow 访问者就可以清楚地了解您的解决方案。

标签: flash actionscript-3


【解决方案1】:

以下是我用来使其工作的代码。谢谢大家的帮助。

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();
}

【讨论】:

    【解决方案2】:

    我猜你可能遇到了安全限制。 Flash 需要通过套接字连接到任何服务器的权限,它会在端口 843.Adobe has a pretty good document on the restrictions 上查找权限,以及一些绕过它的示例代码。如果您无法直接访问您尝试连接的服务器,则可能需要使用代理服务器进行探索。

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2011-08-08
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多