Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1534 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Fonction non bloquante sous telnet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction non bloquante sous telnet

n°758291
jojobibine
Posté le 09-06-2004 à 17:46:23  profilanswer
 

Salut,
Je travaille en ce moment sur un serveur telnet. Le problème c'est qu'il faut que je fasse une attente non bloquante.
Ce serveur fonctionne sous DOS.  
Pour l'instant voila le code:
 
 do {
        tcp_listen( s, port, 0L, 0, NULL, 0 );
 
        while ( ! sock_established( s )) {
            if ( tcp_tick( s ) == NULL ) goto retry;
            delay( 250 );
        }
 
        /* we are connected */
        t->teld_connected = 1;
        t->teld_iostate = IO_ST_INIT;
        sock_mode( s, TCP_MODE_NONAGLE );
        send_iac( t, TEL_WILL, OPT_ECHO );
        return( t );
 
retry:
        sock_abort( s );
    } while ( 1 );
 
 
J'ai essayé de faire un "if" sur sock_established(s) mais ca ne marche pas .
Je m'explique:
Je teste si la socket est établie puis je traite la suite.
Mais ca ne marche pas .
Existe t'il d'autres procédures ou d'autres fonction non-bloquante?
merci.
 
 

mood
Publicité
Posté le 09-06-2004 à 17:46:23  profilanswer
 

n°758372
Vinx
Posté le 09-06-2004 à 19:45:16  profilanswer
 

Pour les sockets, j'ai déjà fait comme ça :
 
    int opts;
    opts = fcntl (ta_socket, F_GETFL);
    if (opts < 0) return;
    opts = (opts | O_NONBLOCK);
    fcntl (ta_socket, F_SETFL, opts);
 
edit: J'avais pas fait gaffe que ça tourne sous DOS. Ca fonctionne sous linux ma méthode. Sous DOS je ne peux pas confirmer ;)


Message édité par Vinx le 10-06-2004 à 10:45:05
n°758840
jojobibine
Posté le 10-06-2004 à 10:04:42  profilanswer
 

Merci d'abord pour ta réponse,
Je ne connaissait pas du tout cette fonction avant, pourrais tu m'en dire un peu plus STP .
Genre le pointeur sur la structure,"this"? et "fd"?
merci  

n°758912
Vinx
Posté le 10-06-2004 à 10:45:59  profilanswer
 

Autant pour moi ça vient du copier coller.
C'est en fait le descripteur de ta socket.
(Le code venait d'une classe...)

n°758928
jojobibine
Posté le 10-06-2004 à 11:04:14  profilanswer
 

Erreur de compil,
Il ne reconnait pas les cstes O_NONBLOCK et F_GETFL . Pourtant j'ai inclus <unistd.h> et <fcntl.h>.
Ca me parrais mal barré!!!

n°759028
jojobibine
Posté le 10-06-2004 à 11:40:27  profilanswer
 

sinon ya pas des fonctions dans tcp.h? qui pourrait faire la même chose?

n°759087
Vinx
Posté le 10-06-2004 à 12:24:52  profilanswer
 

Sans doute que ça n'existe que sous linux.
=> http://joshua.raleigh.nc.us/docs/l [...] 69.html#15
 
#define O_NONBLOCK   04000
en ligne 15
 
Vérifie si tu c'est défini dans ton fichier inclus ;)

n°759157
jojobibine
Posté le 10-06-2004 à 13:35:15  profilanswer
 

ya pas !!!
C'est pas grave, je pense avoir une notre solution.
Pendant l'attente j'execute mes autres fontions. (a l'intérieur du while).
merci pour tes renseignements.
tcho

n°759166
cricri_
Posté le 10-06-2004 à 13:39:19  profilanswer
 

Quand tu dis sous DOS, c'est vraiment sous dos ou c'est une session CMD sous windows ?
parcequ'à ce moment là ça doit être ioctlsocket() pour rendre la socket non bloquante.

n°759186
jojobibine
Posté le 10-06-2004 à 13:57:54  profilanswer
 

non c'est vraiment sous dos,  
En fait je télécharge mon executable sur une cible.(proc 486sx )
En plus de la fonction telnet, le programme gère d'autres fonctions.
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Fonction non bloquante sous telnet

 

Sujets relatifs
fonction split[resolu]Ais je bien passer les arguments par adresse à ma fonction ?
Comment appeler une fonction à l'aide d'un pointeur sur cette fonctionfonction pour connexion serveur + regex
[Websphere] fonction split() de la classe String non implémenté ?[PHP] Problème sur une fonction, hébergé sur un serveur UNIX
Pb .exe telnetvariable javascript dans une fonction
fonction packLa décoration de fonction
Plus de sujets relatifs à : Fonction non bloquante sous telnet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR