Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
C# AS3客户端套接字可以';无法连接到本地网络服务器_C#_Actionscript 3_Sockets_Serversocket - Fatal编程技术网

C# AS3客户端套接字可以';无法连接到本地网络服务器

C# AS3客户端套接字可以';无法连接到本地网络服务器,c#,actionscript-3,sockets,serversocket,C#,Actionscript 3,Sockets,Serversocket,我在一台电脑上有一个c#服务器插座,在另一台电脑上有一个客户端AS3插座,与第一台电脑位于同一个本地网络上。 问题是,当c#和AS3在同一台PC上时,连接正常,但当我在本地网络的另一台PC上移动c#时,AS3无法到达 请参考以下代码: package { import flash.display.Sprite; public class SocketExample extends Sprite { private var sock

我在一台电脑上有一个c#服务器插座,在另一台电脑上有一个客户端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();
        }
    }

检查您的防火墙规则和防病毒软件,查看该端口上的连接是否被阻止,并且计算机是否在同一子网中。事实上,flash不可能做到这一点,因此我改为android,效果更好。我自己做到了这一点,所以这并非不可能。这是可能的,我使用了AS 2.0,而您使用的是AS 3.0。所以这是可能的。只需在trusted one中添加套接字端口号。