PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → sockets - [WD8]
sockets - [WD8]
Started by mcam, Aug., 22 2004 4:33 PM - 3 replies
Posted on August, 22 2004 - 4:33 PM
Comment détecter une déconnexion intempestive d'un client

je teste dans une boucle l'existence de la socket avec la fonction
socketexiste tous cela dans un thread pour ne pas bloquer le programme

mais rien ne se passe le programme ne sort pas de la boucle
le programme ne détecte pas que le client c'est déconnecté

BOUCLE
SI SocketExiste(Canal) <> Faux ALORS
trame = SocketLit(Canal,Faux,10)

// suite du programme

SINON
SORTIR
FIN
FIN

Merci
Cam
Posted on August, 23 2004 - 11:25 AM
A+
florian26@ifrance.com

Cam <mcam@orange.fr> wrote:

Comment détecter une déconnexion intempestive d'un client

je teste dans une boucle l'existence de la socket avec la fonction
socketexiste tous cela dans un thread pour ne pas bloquer le programme

mais rien ne se passe le programme ne sort pas de la boucle
le programme ne détecte pas que le client c'est déconnecté

BOUCLE
SI SocketExiste(Canal) <> Faux ALORS
trame = SocketLit(Canal,Faux,10)

// suite du programme

SINON
SORTIR
FIN
FIN

Merci
Cam
Posted on August, 23 2004 - 11:46 AM
Salut,

La déconnection d'un client renvoit une chaine vide lors d'un socketlit
(voir aide).

BOUCLE
SI SocketExiste(Canal) <> Faux ALORS
trame = SocketLit(Canal,Faux,10)


si trame~="" alors sortir


// suite du programme

SINON
SORTIR
FIN
FIN

Merci
Cam


A+
Posted on August, 24 2004 - 9:40 PM
Eric <email@domaine.ext> wrote:

Salut,

La déconnection d'un client renvoit une chaine vide lors d'un socketlit


(voir aide).

BOUCLE
SI SocketExiste(Canal) <> Faux ALORS
trame = SocketLit(Canal,Faux,10)

si trame~="" alors sortir


// suite du programme

SINON
SORTIR
FIN
FIN

Merci
Cam

A+


Ce que Eric a dit est juste.

Je voudrais néanmoins préciser que si un poste est trop occupé, le timout
peut être dépassé et la fonction socketlit renverra vide, alors qu'un fait
le poste n'est pas déconnecté.

Il faudrait peut-être augmenté le timout.

Bon courage !