Accueil > Forum > > > > Fin de recv
Fin de recv
dimanche 8 octobre 2006 à 19:32:20 |
Fin de recv

Ziman
|
Bonjour, je fais actuellement une chtite application. J'aimerai juste qu'un client se connecte sur un serveur et qu'il puisse lui envoyer des messages. Genre un msn ou un seul coté peut parler et k'autre coté affiche le texte envoyé. En fait, si je fais juste un message sans boucle et tout, aucun probleme. Mais j'éai décidé de faire un Thread qui sert à sans cesse écouter un message qui pourrait etre recu. Le problème ben c'est qu'il accumule les commandes. Si je tape : Bonjour Salut Au revoir Il ne va rien afficher mais quand je vais fermer le client, il va m'afficher les trois à la suite. J'aimerais qu'après chaque recv il affiche ce qu'il a récupérer. Comment pourrais-je faire ? Soyez indulgent, je débute dans la programme systeme et réseaux, donc le code pour les thread et socket peut etre un peu bizarre : #ifdef HAVE_CONFIG_H #include <config.h> #endif
#include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> #include <sys/types.h> #include <errno.h> #include <pthread.h>
void *Recept(void *arg) {
char commande[256]; int *iExit = (int *) malloc(sizeof(int));
int *Socket = (int*) arg;
recv(*Socket, commande, sizeof(commande), 0);
printf ("Commande reçue : %s", commande);
if (strcmp(commande, "EXIT") == 0) *iExit = 1; else *iExit = 0;
pthread_exit(iExit);
}
int main(int argc, char *argv[]) {
int SockID = socket(PF_INET, SOCK_STREAM, 0); struct sockaddr_in Sin; struct sockaddr_in Sout; size_t Len = sizeof(struct sockaddr_in); int Socket; pthread_t TID; int *iExit;
Sout.sin_addr.s_addr = inet_addr("127.0.0.1"); Sout.sin_port = 666; Sout.sin_family = PF_INET;
if ((bind(SockID, (struct sockaddr*) &Sout, sizeof(Sout))) == -1) { printf ("Erreur lors du bind : %d", errno); exit (-1); }
if ((listen(SockID, 0)) == -1) { printf ("Erreur lors du listen : %d", errno); exit (-1); }
if ((Socket = accept(SockID, (struct sockaddr *) &Sin, (socklen_t*) &Len)) == -1) { printf ("Erreur lors de l'accept : %d - %d", errno, ENOTSOCK); exit (-1); } else { printf ("Connexion réussie !"); }
do { pthread_create(&TID, NULL, Recept, &Socket); pthread_join(TID, &iExit);
} while (*iExit == 0);
shutdown(Socket, 2);
return EXIT_SUCCESS; }Merci de vos réponses Apprendre le VB6
|
|
dimanche 8 octobre 2006 à 20:59:02 |
Re : Fin de recv
|
dimanche 8 octobre 2006 à 22:23:00 |
Re : Fin de recv
|
lundi 9 octobre 2006 à 01:19:15 |
Re : Fin de recv

AlexN
|
Supprimer le \n ? Nan nan, on s'est mal compris, faudrait le rajouter. Mais bon c'est toi qui choises...
|
|
Cette discussion est classée dans : int, commande, include, socket, iexit
Répondre à ce message
Sujets en rapport avec ce message
Probleme reception sur un serveur windows en vc++ [ par alfred ]
Salut a tous!!g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi, toute mes socket sont positives le client envois
Serveur Vc++6 pb dans recv [ par alfred ]
Salut a tousJ'ai un probleme dans mon serveur et je ne sais pas comment le resoudre. Le client se connecte bien et envoie le bon nombre de caracteres
Erreur de segmentation d'un simple client http sous linux !! [ par nassimatique ]
#include #include #include #include #include #include #include #define TAILLE 4096 <b
socket trop lents [ par cid7777777 ]
bonjour,jessaye de faire un jeu qui peu se jouera 2 en reseau local.je ne connais absolument rien en reso, mais en fouillant sur le net, jai trouver
fork et execvp [ par fullpirates ]
Bon je vous explique j'ai un travail de mi-session à remettre pour mercredi et j'ai essayer bien comme mal a faire fonctionner la commande execvp ...
socket raw [ par moi zork ]
Bonjour,Je suis entrain de m'entrainer sur les socket raw et je bute sur :#include #include using namespace std;int main (void){ int sock; sock =
Unix: sockets & Co [ par bounkolh ]
Bonjour, Je cherche de l'aide pour compléter les ............ du fichier client.c permettant d'interroger le serveur implementé par server.c. Listing
Erreur de Segmentation sur les sockets [ par andoid ]
Bonjour Je blogue sur mon code depuis 2h j'ai une erreur de segmentation à la reception du coté client au faite j'envoie un tableau 2d (d=dimension) l
communication serveur c et client java [ par andoid ]
Bonjour Je voulais savoir commment on peut faire communiquer un serveur C et un cleint java avec les sockets voici juste un petit serveur qui dit bonj
Undefined reference to... Incompréhensible. [ par AnTrqx ]
Bonsoir, J'essaie de coder une classe AdvancedArray qui serait un genre de vecteur simplifié. Seulement j'obtiens cette erreur à la compilation. J'ai
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|