Page 1 sur 1

[R] Fermeture du serveur durant une TCPConnect

Posté : ven. 18 févr. 2011 17:35
par sim
Bonsoir,

J'ai 2 script basiques serveur / client en connexion TCP.
Lorsque je démarre d'abord le client, pas de problème, il tourne en boucle pour essayer de se connecter au serveur (avec un sleep d'usage bien entendu).

Code : Tout sélectionner

$g_IP = xx.xxx.xxx.xx ; Je mets ici mon IP.
$socket = TCPConnect( $g_IP, 65432 ) ; j'initialise une premiere fois la connexion
While 1
If $socket = -1 Then ;

sleep(600000) ; Si la connexion echoue on attend 10min avant de réessayer.
$socket = TCPConnect( $g_IP, 65432 )
    Else
;Là j'ai la suite de mon code.
WEnd
 
Le problème survient lorsque je ferme le serveur sans avoir quitté le client....
Il ne me repasse pas le socket a -1 ... du coup, le script reste dans la boucle While en bugant (proc a 50% d'utilisation).
Comment faire, pour vérifier que la connexion n'a pas été interrompue ? Afin de permettre de relancer une nouvelle connexion.

Merci d'avance :)

sim

Re: [..] Fermeture du serveur durant une TCPConnect

Posté : sam. 19 févr. 2011 12:45
par Tlem
Perso, au lieu de faire un Sleep(600000) qui bloque complètement votre script, j'utiliserais la fonction AdlibRegister qui exécuterait le code toutes les 600000 millisecondes.
Dans le même temps, j'utiliserais un second AdlibRegister qui lancerait un code de test avec TCPSend par exemple, afin de vérifier si le serveur répond bien. ;)

Re: [..] Fermeture du serveur durant une TCPConnect

Posté : sam. 19 févr. 2011 19:30
par sim
Merci pour vos conseils :
Vous avez résolu mon problème !
Je vais donc utiliser AdlibRegister afin de tester la connexion toutes les 10-15 mins. Un grand merci Tlem :))

sim