Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Can';t从浏览器连接到服务器_Actionscript 3_Sockets_Serversocket - Fatal编程技术网

Actionscript 3 Can';t从浏览器连接到服务器

Actionscript 3 Can';t从浏览器连接到服务器,actionscript-3,sockets,serversocket,Actionscript 3,Sockets,Serversocket,我已经创建了一个客户端和服务器, 如果我在Flash player单机版上运行客户机,效果会很好。 但是,如果我从本地主机、浏览器(使用wamp服务器)运行它,它将无法工作。 错误(在服务器端): 第64行是: var text:String = socket.readUTF(); 我不明白为什么通过浏览器它不起作用。当您通过浏览器使用套接字时,Flash不会立即将您正在发送的内容发送到服务器 首先,它打开第一个连接,并询问服务器是否可以连接。它发送一个 服务器必须回答如下问题: <?x

我已经创建了一个客户端和服务器, 如果我在Flash player单机版上运行客户机,效果会很好。 但是,如果我从本地主机、浏览器(使用wamp服务器)运行它,它将无法工作。 错误(在服务器端):

第64行是:

var text:String = socket.readUTF();

我不明白为什么通过浏览器它不起作用。

当您通过浏览器使用套接字时,Flash不会立即将您正在发送的内容发送到服务器

首先,它打开第一个连接,并询问服务器是否可以连接。它发送一个

服务器必须回答如下问题:

<?xml version="1.0"?><cross-domain-policy><allow-access-from domain="YOURLOCALDOMAIN" to-ports="PORT YOUR SERVER IS RUNNING AT" /></cross-domain-policy>

根据blue112的回答,以下是我的解决方案:

…
while( (k = in.read(buff, 0, 1)) > -1 ) {
    result += new String(buff, 0, k);

    // Flash privacy policy
    if(result.equals("<policy-file-request/>")) {
        out.write("<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"12345\" /></cross-domain-policy>\0");
        out.flush();
    }

    // Process message stuff
    …
}
…
…
而((k=in.read(buff,0,1))>-1){
结果+=新字符串(buff,0,k);
//闪存隐私政策
if(结果等于(“”){
输出。写入(“\0”);
out.flush();
}
//处理消息内容
…
}
…

您需要在服务器端实现这一点。您试图连接的服务器是什么?它是my服务器,它的socketserver,actionscript3
…
while( (k = in.read(buff, 0, 1)) > -1 ) {
    result += new String(buff, 0, k);

    // Flash privacy policy
    if(result.equals("<policy-file-request/>")) {
        out.write("<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"12345\" /></cross-domain-policy>\0");
        out.flush();
    }

    // Process message stuff
    …
}
…