我编写了一个AIR应用程序,它使用套接字连接到另一台运行另一台AIR应用程序的计算机,该应用程序使用ServerSocket侦听来自第一个应用程序的传入连接。因为我的计算机在路由器后面,我已经打开了一个端口并将其转发到计算机上侦听连接。我检查了canyouseeme.org以查看端口是否打开,并且说该端口已打开。当我尝试将第一个应用程序连接到第二个应用程序时,它没有连接。当启动第二个应用程序并使其侦听传入的连接并检入canyouseeme.org时,该应用程序告诉我该网站确实连接到它。那么为什么第一个AIR应用程序无法连接?
以下是代码:
import flash.events.ServerSocketConnectEvent;
import flash.events.Event;
import flash.events.IOErrorEvent;
var server:ServerSocket = new ServerSocket();
server.bind(55551, "192.168.1.4");
server.addEventListener(ServerSocketConnectEvent.CONNECT, handleConnection);
server.listen();
var socket:Socket = new Socket();
socket.addEventListener(IOErrorEvent.IO_ERROR, error)
socket.connect("94.59.206.37", 55551);
function error(event:IOErrorEvent):void
{
trace("port 55551 is not openned");
}
function handleConnection(event:ServerSocketConnectEvent):void
{
trace("connected!!");
}