Avatar billede sidselbp Nybegynder
05. maj 2004 - 19:38 Der er 13 kommentarer

Problemer med at sende noget til en socket i flash

Jeg skal sende en url fra min flash-film til en socket. Til det formål bruger jeg XMLsocket-klassen. Det volder mig dog en del problemer. Nedenfor er den kode, der connecter til socket'en, men den siger "Connection failed" hver gang. Er der nogen, der ved, om det kan være fordi, jeg sidder på en mac eller er der en fejl i koden?

function myOnConnect(success) {
  if (success) {
    trace ("Connection succeeded!")
  } else {
    trace ("Connection failed!")
  }
}

socket = new XMLSocket();
socket.connect(null,2000);
socket.onConnect = myOnConnect();

if (!socket.connect(null, 2000)) {
  trace ("Connection failed!")
}


Til at sende url'en til socket'en har jeg tænkt mig at bruge noget i stil med:
socket.send(_root.bar_a.bjaelke1.url);

Ser det helt skævt ud?

Der er 150 point på spil for jeg synes, det er ret svært, det her!
Avatar billede pyroman Nybegynder
05. maj 2004 - 21:54 #1
Det er højst sandsynligt fordi i prøver at få forbindelse der ligger på en anden server end der hvor flashen ligger på... For at dette kan lade sig gøre skal i sætte noget der hedder "cross domain policy" - dette skal gøres på flere forskellige måder for at det kan virke i både flashplayer 6 og 7.
Har netop været ude for samme problem:

http://www.eksperten.dk/spm/445866

og denne til flashplayer 6:

http://www.eksperten.dk/spm/472220

/Filip :)
Avatar billede pyroman Nybegynder
05. maj 2004 - 21:56 #2
Hov! det er ikke der problemet ligger - ahvde ikke set jeres script ordentligt an!

i skriver jo slet ikke noget domæne i connect()!!!!

I er nødt til at forbinde til et eller andet - hvis det er jeres egen computer, så skal i forbinde til localhost som som regel har ip'en 127.0.0.1...
Avatar billede sidselbp Nybegynder
05. maj 2004 - 22:12 #3
Jeg har prøvet at forbinde til localhost, 127.0.0.1:

function myOnConnect(success) {
  if (success) {
    trace ("Connection succeeded!")
  } else {
    trace ("Connection failed!")
  }
}

socket = new XMLSocket();
socket.connect("127.0.0.1",2000);
socket.onConnect = myOnConnect();

if (!socket.connect("127.0.0.1", 2000)) {
  trace ("Connection failed!")
}

Men det virker stadig ikke. Ved du, om der er en smart måde at finde ip'en på localhost på?
*Sidsel
Avatar billede sidselbp Nybegynder
05. maj 2004 - 22:13 #4
I flash's hjælpefunktion står der i øvrigt også, at man godt kan bruge "null", hvis man vil connecte til den samme server som filen ligger på:
"You can also specify null to connect to the host server on which the SWF file resides."
Avatar billede pyroman Nybegynder
05. maj 2004 - 22:15 #5
Kører socket programmet overhovedet? Og er det sat til at acceptere alle inkommende kald?
Avatar billede sidselbp Nybegynder
05. maj 2004 - 22:17 #6
he he - hmm - nu er jeg lidt på glatis. Jeg ved nemlig ikke så meget om sockets. Troede egentlig bare, at man kunne skrive det i flash, og så vil det virke.... Men sådan fungerer det måske ikke helt?
Avatar billede nikolajdu Nybegynder
06. maj 2004 - 08:20 #7
Prøv at bytte rundt så onConnect kommer før connect.
Avatar billede sidselbp Nybegynder
06. maj 2004 - 09:09 #8
Det hjælper heller ikke.
Avatar billede nikolajdu Nybegynder
06. maj 2004 - 09:17 #9
Hvilken server kører du??

Hvis din localhost ip er 127..... så kan du skrive http://127.0.0.1 i adressefeltet og skal så komme ind på serveren.

Tester du indefra Flash eller i browseren?
Avatar billede pyroman Nybegynder
06. maj 2004 - 09:36 #10
prøv at lade vær' med at med connecte 2 gange... lav dit script om til følgende:

function myOnConnect(success) {
  if (success) {
    trace ("Connection succeeded!")
  } else {
    trace ("Connection failed!")
  }
}
socket = new XMLSocket();
socket.onConnect = myOnConnect();
if (!socket.connect("127.0.0.1", 2000)) {
  trace ("Connection failed!")
}
Avatar billede sidselbp Nybegynder
06. maj 2004 - 09:44 #11
Nej, det hjalp heller ikke. Jeg tror lige jeg vil prøve det af på en pc, for jeg kan simpelthen ikke se, at der skulle være noget galt med koden. Jeg vender tilbage, når jeg har fundet ud af, om det virker...
Avatar billede sidselbp Nybegynder
06. maj 2004 - 11:13 #12
Hmm - nu har vi også fået en datalog på sagen. Han har åbnet en ip-adresse: 10.12.20.133 og porten 10000 på sin maskine, og når vi kører flash fra den med nedenstående kode, virker det stadig ikke. Skal man gøre Flash opmærksom på, at man skal sende noget til andre programmer - og er XMLsocket indrettet sådan, at man skal sende det til en xml-socket-server (vores er nemlig en alm socket server)??

function myOnConnect(success) {
  if (success) {
    trace ("Connection succeeded!")
  } else {
    trace ("Connection failed!")
  }
}
socket = new XMLSocket();
socket.onConnect = myOnConnect();
if (!socket.connect("10.12.20.133", 10000)) {
  trace ("Connection failed!")
}

Jeg håber, der er nogen, der kan hjælpe os lidt på vej.
Avatar billede pyroman Nybegynder
06. maj 2004 - 16:40 #13
xml er kun den måde hvorpå dataene skal overføres... men når du connecter sender du ikke nogen data!
Jeg har en java server socket, som du godt må til at teste med - den virker i hver fald på min pc!
Den er fra moock.org - men jeg kan sgu ikke finde den igen.

Hvis du vil have den til at teste med kan du bare skrive din mail adresse her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester