【发布时间】:2014-09-22 06:55:23
【问题描述】:
我正在尝试将我的 Flash 游戏连接到我自己的计算机上托管的 TCP 服务器(用于开发目的)。我已经在 PHP 中成功创建了一个 TCP 流:
<?php
$port=<some number>;
$server=<some local vhost>;
$socket=@stream_socket_server("tcp://$server:$port", $errno, $errstr);
$conn = stream_socket_accept($socket);
while($conn){
$foo=fgets($conn);
fwrite($conn, $foo);
}
这是我写的 Actionscript 代码:
// import statements not included
public var socket:Socket=new Socket;
public var server:String="HIDDEN";
public var port:uint=HIDDEN;
public function connectSocket():void
{
socket.connect(server,port);
socket.addEventListener(ProgressEvent.SOCKET_DATA,onSocketData);
socket.addEventListener(Event.CONNECT,onSocketConnect);
}
public function onSocketConnect(event:Event):void
{
trace("CONNECT at "+new Date().toUTCString());
socket.writeUTF("Foo");socket.flush();
}
public function onSocketData(event:ProgressEvent):void
{
trace("PROGRESSEVENT at "+new Date().toUTCString());
trace("RESPONSE FROM SEVER: "+socket.readUTF()+" at "+new Date().toUTCString());
}
然而,在运行这个我得到:
[trace] CONNECT at Wed Jul 30 14:54:27 2014 UTC
[trace] PROGRESSEVENT at Wed Jul 30 14:55:27 2014 UTC
[trace] RESPONSE FROM SEVER: Foo at Wed Jul 30 14:55:27 2014 UTC
通常正好是 60 秒,但一两次会多一点。服务器托管在我自己的机器上,连接到我自己的机器应该不需要 60 秒,对吧?
【问题讨论】:
标签: php actionscript-3 sockets tcp