Bonjour,
J'ai un serveur en Perl fait maison dont voila le source:
En fait c'est un serveur tout simple, qui renvoi "toto" a chaque connexion. Ca marche en faisant telnet 192.168.0.4 1026
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #!/usr/bin/perl use Socket; $ENV{'PATH'} = '/bin:/usr/bin'; delete @ENV{ 'IFS', 'CDPATH', 'ENV','BASH_ENV'}; $utilisateur = "nobody"; $this_host = "*"; $port = 1026; $server_addr = (gethostbyname($this_host))[4]; $server_struct = pack("S n a4 x8", AF_INET, $port, $server_addr); $proto = (getprotobyname("tcp"))[2]; socket( SOCK, PF_INET, SOCK_STREAM, $proto ) || die "Impossible d'initialiser la socket: $!\n"; setsockopt( SOCK, SOL_SOCKET, SO_REUSEADDR,1 ) || die "setsockopt() foire: $!\n"; bind( SOCK, $server_struct ) || die "bind foire: $!\n"; listen( SOCK, SOMAXCONN ) || die "listen foire: $!\n"; unless ($uid = (getpwnam($utilisateur))[2]) { die "Tentative de lancer le serveur en tant qu'utilisateur inexistant ou supperutilisateur\n"; } print "UID: $uid\n"; for ( ;; ) { $remote_host = accept( NEWSOCK, SOCK ); die "accept() erreur: $!\n" unless ($remote_host); $raw_addr = ( unpack( "S n a4 x8", $remote_host ) )[2]; @octets = unpack( "C4", $raw_addr ); $adresse = join( ".", @octets ); print "Connexion de: $adresse\n"; print NEWSOCK "toto"; print "Termine\n"; close(NEWSOCK); }
J'essai de faire un client en flash qui fait la meme chose, j'ai donc un bouton et un testfield ( texte ).
Voici mon script:
La connexion se fait bien, mais le fonction reception n'est jamais appelé, donc il n'imprime pas le toto. De plus, bien que mon script ferme la connexion, la fonction deconnection n'est pas appelé non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 var socket = new XMLSocket(); socket.onConnect = connexion; socket.onData = reception; socket.onClose = deconnexion; function connexion(isOk) { if(isOk) // la connection s'est bien déroulée texte.text += "OK Connexion\n"; else texte.text += "Echec de la connexion !\n"; } function deconnection() { texte.text += "connection terminee.\n"; } function reception(chaine) { texte.text += "["+chaine.toString()+"]\n"; } bouton.onRelease = function() { texte.text="tentative de connexion\n"; socket.connect( "192.168.0.4", 1026 ); }
J'utilise la version d'evaluation de flash professionnel 8. C'est la premiere fois que je fais du flash...
Avez-vous des idées ?
Merci par avance.
Partager