我有一個ServerSocket偵聽ServerSocketConnectEvent.CONNECT事件。在AS3中如何進行套接字連接
serverSocket.bind(80, "127.0.0.1");
serverSocket.addEventListener(ServerSocketConnectEvent.CONNECT, onConnect);
serverSocket.listen();
然後它監聽ProgressEvent.SOCKET_DATA事件。
private function onConnect(event:ServerSocketConnectEvent):void
{
clientSocket = event.socket;
clientSocket.addEventListener(ProgressEvent.SOCKET_DATA, onClientSocketData);
}
private function onClientSocketData(event:ProgressEvent):void
{
var buffer:ByteArray = new ByteArray();
clientSocket.readBytes(buffer, 0, clientSocket.bytesAvailable);
...
然後我從我的客戶端發送一條簡單的消息「hello」。 這工作正常,當我從IDE運行我的客戶端。 但是當我運行相同的客戶從我的瀏覽器的SWF我在緩衝區得到這個消息:
""<policy-file-request/>""
我試圖捕捉的代碼是這樣迴應:
if(buffer.toString().search("policy-file-request" != -1))
{
var str:String = "<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>\0";
clientSocket.writeUTFBytes(str);
clientSocket.flush();
}
代碼叫,但它不起作用。我如何建立連接?
請幫助:)
謝謝@RobertN :) 正如你可以從代碼中看到的,我試圖發送我的XML。但它不起作用。你能提供一些代碼嗎? –
對於開發工作,我只是使用Adobe的python flashpolicyd.py腳本進行生產,我們爲端口843站起虛擬http服務器,並用策略文件回覆任何請求。如果您使用基於Air的服務器(?)執行此操作,請嘗試將\ 0終止符作爲writeByte(0)發送。 – SushiHangover