begin process at 2010 02 10 12:31:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

Socket


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Socket

dimanche 30 janvier 2005 à 15:41:16 | Socket

hiccup

Bonjour tout le monde
Pour m'initier à la programmation réseau, j'ai voulu programmer un logiciel simple permettant à deux utilisateurs possédant chacun son ordinateur de communiquer. J'ai lu beaucoup de tutoriaux à propos des sockets. Le seul probleme c'est que lorsque je souhaite savoir si mon correspondant m'a envoyé un message, j'execute l'instruction rcv(), mais alors tant que celui-ci ne m'a pas écrit, je ne peux pas taper mon propre message. Le programme est bloqué jusqu'à ce que un paquet arrive. Y a-t-il un moyen pour contourner ce problème ?

dimanche 30 janvier 2005 à 16:23:34 | Re : Socket

thanos57

essaye en utilisant les threads
dimanche 30 janvier 2005 à 16:27:32 | Re : Socket

simtiers

Tu travaille avec quel OS...

Si c'est Windows, tu peux créer 2 threads : 1 pr écrire, 1 pr lire.
Pour les autres systèmes, je sais pas
dimanche 30 janvier 2005 à 19:54:39 | Re : Socket

DeAtHCrAsH

Yep,
Mieux que les threads, utilise les sockets asynchrones.
Regarde dans mes sources, tu trouveras un exemple d'application client/serveur avec des sockets non bloquantes.

Tu verras c'est meme plus simple et plus gérable.

Shell
dimanche 30 janvier 2005 à 21:08:58 | Re : Socket

hiccup



Merci de vos réponses

DeAtHCrAsH je suis en train de lire ton programme utilisant les sockets asynchrones. Mais sinon, pour ma culture, c'est quoi les threads (je travaille effectivement sous windows) ?
dimanche 30 janvier 2005 à 22:20:53 | Re : Socket

DeAtHCrAsH

Les threads, sont des temps processeurs.
Par exemple si un programme a besoin de lire et d'écrire en "meme temps".
Il va alors diminuer et séquencer les temps nécéssaires pour chaque tache.

Par exemple si les deux taches dure 10 secondes chacune, le processeur va diviser chacune d'entre elle en séquence d'une seconde.
Puis il va les organiser de maniere  à executer la premiere tache pendant une seconde, puis ensuite la deuxieme tache pendant une seconde, puis de nouveau la premiere tache pendant une seconde, ..., et ainsi de suite jusqu'a que chacune des taches soit arriver à 10 secondes (ce qui est le temps totale pour effectuer chacune de nos taches).

En gros, le programme va répartir les temps de traitement entre les différentes taches.
Tu auras ainsi l'impression que tout s'execute en meme temps, alors qu'en fait les taches s'execute les unes après les autres mais avec de petits laps de temps.

Voila, je sais pas si j'ai été assez claire mais en gros ca résume les threads.

Shell
lundi 31 janvier 2005 à 12:46:38 | Re : Socket

simtiers

Je pense que c'est assez clair...

Comme l'a dit deathcrash, si tu executes 2 fonctions "en même temps" par les threads, le processeur va executer un certain nombre d'opérations de la première et de la deuxième fonction par alternance.

Les threads sont surtout utilisés pour les annulations de gorsses opérations (exemple : une boucle pour compter de 1 à 200000, sur un ordi "lent", tu crées la boucle de calcul dans un thread, et un bouton annuler, dans la fenêtre principale, qui te permettra de stopper la boucle)


Cette discussion est classée dans : message, socket


Répondre à ce message

Sujets en rapport avec ce message

Problème d'envoie par socket [ par CyberP ] J'ai fait un programme qui se connecte à un serveur ftp (le serveur ftp est aussi sur mon ordi). Je me connecte avec la fonction connect() et je recoi prob socket [ par flatou ] salutj'ai créé une appli serveur, banale : un client se connecte, il envoi un message et le serveur affiche le message.j'ai utilisé cela pour la recep buffer [ par coins ] Bonjour a tous, J'ai utilise le fonction recv () pour recupere de message de socket, mais, le probleme est , si la taille de message superieur que la socket [ par gaussdelphine ] J'essaye de programmer une socket em mode datagramme SOCK_RAW. J'ai le message d'erreur suivant à la compilation:sizeof applied to an incomplete type socket [ par ToToL ] Bonjoursj'ai un petit probleme de socket. en fait dans mon prog ( en win 32 ) j'envoi un message par internet a un autre programme toute les 20 milli RAW socket message sortant [ par TNDFR ] slt,j'intercepte tous les packet entrant sans problem (ttl,tos,ip..)mais je ne sais pas comment lire les packet sortant?et comment faire pour blocker Mettre un argument dans un thread... [ par ChrOnOs83 ] Bonjour à tous,J'ai de nouveau un petit probleme sur le quel je bloque...En faite je suis entrain de faire un chat multi-clients. Je passe par des soc Timeout TCP [ par alexixlebaulois ] Bonjour,j'ai un gros problème dans mon prog: j'ai plusieurs threads qui communiquent en même temps avec des logiciels externes pour récolter des stats socket [ par lilington ] salut j'éssais de fiare une petite application console sous vc++ qui permet à de machine de chater mais je n'arrive pas à faire du simultané. ret=recv Envoi de message UDP sans socket ???? [ par thealex321 ] Salut à tous!Bon, ma question est vraiment parce que je ne comprends pas comment on peut envoyé un message sans créer un socket pour l'envoyer.Pourquo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales