Socket non-bloquante

Soyez le premier à donner votre avis sur cette source.

Vue 3 970 fois - Téléchargée 610 fois

Description

Bonjour, voici un exemple de client non-bloquant qui se connecte a une IP et un
PORT pris en argument. Pas besoin d'un serveur pour remarquez qu'en mode non
bloquant, l'erreur affiche est 'Operation now in progress' et en mode bloquant,
l'erreur affiche est 'Connexion refused'.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
40
Date d'inscription
samedi 1 février 2014
Statut
Membre
Dernière intervention
7 août 2014
3
De quel livre tu parle ? ( donne le lien si possible ). Je n'ai pas voulu surcharger le code pour ne pas faire fuir les débutants, mais si tu veux bien gérer les réceptions, je te conseil d'utiliser des threads ( c'est sale ) ou un signal handler qui sera appelé lorsqu'il recevra SIGIO. Ensuite, tu fais un poll() ou un select() sur ta socket pour vérifier si c'est bien elle qui a émis le signal. Pour la socket fermé, je te conseil d'envoyer des données en permanence au serveur et si le serveur ne reçoit plus rien, il envoi un chiffre au hasard au client qui devra renvoyer le même, si c'est fait alors le client est connecté sinon bah tu fais close() sur la socket en question. Cette technique n'est pas la plus propre mais elle fonctionne. J'espère t'avoir été utile.
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

Hum c'est un peu le chapitre #1 du manuel sur les socket, ça aurait été bien d'avoir un peu plus de détails. Comme par exemple, comment se passe l'envoie d'un volume important de donnée, ou comment bien gérer la réception, le socket fermé etc ..

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.