簡體   English   中英

AS3客戶端套接字無法連接到本地網絡服務器

[英]AS3 Client Socket can't connect to a local network server

我在PC上有一個ac#服務器插槽,在與第一台PC相同的本地網絡上的另一台PC上有一個客戶端AS3插槽。 問題是當c#和AS3在同一台PC上時,連接正常,但是當我在本地網絡上的另一台PC上移動c#時,AS3無法訪問它!

請參考以下代碼:

package {
        import flash.display.Sprite;

        public class SocketExample extends Sprite {
            private var socket:CustomSocket;

            public function SocketExample() {
                socket = new CustomSocket("localhost", 80);
            }
        }
    }

    import flash.errors.*;
    import flash.events.*;
    import flash.net.Socket;

    class CustomSocket extends Socket {
        private var response:String;

        public function CustomSocket(host:String = null, port:uint = 0) {
            super();
            configureListeners();
            if (host && port)  {
                super.connect(host, port);
            }
        }

        private function configureListeners():void {
            addEventListener(Event.CLOSE, closeHandler);
            addEventListener(Event.CONNECT, connectHandler);
            addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
        }

        private function writeln(str:String):void {
            str += "\n";
            try {
                writeUTFBytes(str);
            }
            catch(e:IOError) {
                trace(e);
            }
        }

        private function sendRequest():void {
            trace("sendRequest");
            response = "";
            writeln("GET /");
            flush();
        }

        private function readResponse():void {
            var str:String = readUTFBytes(bytesAvailable);
            response += str;
        }

        private function closeHandler(event:Event):void {
            trace("closeHandler: " + event);
            trace(response.toString());
        }

        private function connectHandler(event:Event):void {
            trace("connectHandler: " + event);
            sendRequest();
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function socketDataHandler(event:ProgressEvent):void {
            trace("socketDataHandler: " + event);
            readResponse();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM