gpt4 book ai didi

flash - Actionscript 套接字事件未触发?

转载 作者:行者123 更新时间:2023-12-03 12:01:30 25 4
gpt4 key购买 nike

我正在编写一个 SWF,我想通过套接字与 Java 进程进行通信。这通常使用标准 Socket 很容易,但由于某种原因,当所有迹象都表明应该触发时,Socket 文档中描述的事件并没有触发。

在 Java 方面,我设置了 ServerSocket那是在端口 8080 上监听。使用 netcat 我已经确认它按设计工作。

然而,在 Flash 方面,我正在设置 per the examples在文档中:

public function connectToPort(port : int):void
{
m_socket = new Socket();

addEventListener(Event.CLOSE, onClose);
addEventListener(Event.CONNECT, onConnect);
addEventListener(IOErrorEvent.IO_ERROR, onIoError);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
addEventListener(ProgressEvent.SOCKET_DATA, onData);

m_socket.connect("localhost", port);

// trace() doens't work for the command-line :(
m_debug.text = "Called connect!";
}

当我运行生成的 SWF 时,我得到的只是“调用连接!”在舞台上,没有任何事件发生。更奇怪的是,当我在 Java 端调查来自 ServerSocket 的通信时,它接收并接受了一个连接。当我关闭 SWF 时,调用我的服务器的代码正常完成——这意味着它卡在与我的 SWF 建立的连接上。

我还有几个问题...
  • 除了事件处理程序,这是我的代码控制的结束(在建立连接后,我们只是等待事件并适本地呈现它们)。整个程序是否会“终止”,而我只是误解了运行时模型?
  • 要调用它们的回调是否有可见性/命名要求?它们都是公开的,但运行时可能没有看到它们吗?
  • AS3 Socket 编程有什么陷阱吗?我一直认为这是沙盒等问题,但 SECURITY_ERROR 也没有触发...

  • 任何帮助将不胜感激,我大部分时间都花在这上面,我很沮丧,我无法让基本的套接字通信正常工作:-/

    最佳答案

    看起来您正在将事件监听器添加到“this”对象,而不是套接字。

    试试这个:

    m_socket.addEventListener(Event.CLOSE, onClose);
    m_socket.addEventListener(Event.CONNECT, onConnect);
    m_socket.addEventListener(IOErrorEvent.IO_ERROR, onIoError);
    m_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
    m_socket.addEventListener(ProgressEvent.SOCKET_DATA, onData);

    你应该开始看到套接字事件。

    关于flash - Actionscript 套接字事件未触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458828/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com