خطای SecurityError 2000 در برنامه نویسی سوکت

sabersoft

Active Member
سلام
هر کاری می کنم نمی تونم یه ارتباط سوکت ساده برقرار کنم لطفا کمک کنید(روی سیستمم وب سرور هست مشکلی برای پورت نیست) :
این کد :
PHP:
package {
  import flash.display.Sprite;
  import flash.events.*;
  import flash.net.Socket;

  public class SocketExample extends Sprite {
  
    private var socket:Socket;
  
    public function SocketExample(  ) {
      socket = new Socket(  );
      
      // Add an event listener to be notified when the connection 
      // is made
      socket.addEventListener( Event.CONNECT, onConnect );
      
      // Connect to the server
      socket.connect( "localhost", 80 );
    }
    
    private function onConnect( event:Event ):void {
      trace( "The socket is now connected..." );  
    }
    
  }
}
این هم خطا :

PHP:
SecurityError: Error #2000: No active security context.
 
آخرین ویرایش:

aliamel

کاربر فعال
سلام
من علت خطای انتهای توضیحاتت رو بررسی نکردم اما
معمولا یکی از دلایل عدم ارتباط ناموفق سوکت استفاده از پورت و آدرس دقیق هست (عدم تطابق پورت و آدرس) و این همون چیزی هست که تو کد شما به چشم می خوره . وقتی سوکت نتونه با پورت و آدرسی که شما براش تعیین کردی به مقصد وصل بشه یه خطا به وجود میاد . کد زیر به درستی اجرا خواهد شد چرا پورت 80 یاهو برای کاربران باز است :
PHP:
package 
{
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
    import flash.display.MovieClip;

    public class SocketExample extends MovieClip
    {

        public var socket:Socket;
        public function SocketExample()
        {
            socket= new Socket();
            socket.addEventListener( Event.CONNECT, onConnect );
            socket.connect("yahoo.com",80);
        }

        private function onConnect( event:Event ):void
        {
            trace( "The socket is now connected..." );
        }
    }
}
 

sabersoft

Active Member
سلام
من علت خطای انتهای توضیحاتت رو بررسی نکردم اما
معمولا یکی از دلایل عدم ارتباط ناموفق سوکت استفاده از پورت و آدرس دقیق هست (عدم تطابق پورت و آدرس) و این همون چیزی هست که تو کد شما به چشم می خوره . وقتی سوکت نتونه با پورت و آدرسی که شما براش تعیین کردی به مقصد وصل بشه یه خطا به وجود میاد . کد زیر به درستی اجرا خواهد شد چرا پورت 80 یاهو برای کاربران باز است :
PHP:
package 
{
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
    import flash.display.MovieClip;

    public class SocketExample extends MovieClip
    {

        public var socket:Socket;
        public function SocketExample()
        {
            socket= new Socket();
            socket.addEventListener( Event.CONNECT, onConnect );
            socket.connect("yahoo.com",80);
        }

        private function onConnect( event:Event ):void
        {
            trace( "The socket is now connected..." );
        }
    }
}


با سپاس
حواسم به این مطلب بود(اگه دقت کنید توی سوالم نوشتم که مشکلی برای پورت نیست و روی سیستمم وب سرور نصب هست) برای مثال با دلفی یا سی شارپ می تونم به پورت 80 localhost یا همون 127.0.0.01 وصل بشم اما توی فلش این خطا رو میده.
 

aliamel

کاربر فعال
یک دلیل دیگه این می تونه باشه برنامه می خواد به منابعی دسترسی داشته باشه که توسط جعبه شنی امنیتی (Seurity Sandbox) محدود شده . با توجه به این سیستم لوکال جهت تست ندارم 3 دلیل برای اتفاق افتادن این خطا رو می نویسم :

* An unauthorized property access or method call is made across a security sandbox boundary.

* An attempt was made to access a URL not permitted by the security sandbox.

* A socket connection was attempted to an unauthorized port number, e.g. a port above 65535.
* An attempt was made to access the user’s camera or microphone, and the request to access the device was denied by the user
.
 

جدیدترین ارسال ها

بالا