Accueil > Forum > > > > erreur serveur multitheard en c
erreur serveur multitheard en c
jeudi 16 avril 2009 à 11:42:17 |
erreur serveur multitheard en c

dyroj
|
salut, j'ai créer un serveur echo en multithread et il marche a moitier sofe que par foi il confon les client. enfin c'est un peut bizare, par exemple quand un client enfoirer une chaine de caractaire c'est un autre client qui la recoi. bref voila ma source : #include <stdio.h>#include <winsock2.h>#include <windows.h>#include <tchar.h>#include "mesfonction.h"#pragma comment (lib,"ws2_32.lib") typedef struct CLIENT { SOCKET sock_client; SOCKADDR_IN sin_client; }CLIENT, *LPCLIENT; fatal( constchar * erreur){ printf( "\nErreur type : %s\n", erreur);exit(0); } DWORD WINAPI thread_client(LPVOID Pclient_void) { char buffer[1024]="";LPCLIENT Pclient = (LPCLIENT)Pclient_void; printf( "Client\t%s:%d\tConnect\n", inet_ntoa(Pclient->sin_client.sin_addr), Pclient->sin_client.sin_port);send(Pclient->sock_client, "lu enfoirer\r\n", Ssize("lu enfoirer\r\n"),0);while(1){ recv(Pclient->sock_client, buffer, sizeof(buffer), 0);send(Pclient->sock_client, buffer, Ssize(buffer),0); } } void main( int argc, char **argv ){ //variableWSADATA wsa; SOCKET sock; SOCKADDR_IN sin_serveur; int sinsize;DWORD idt; LPCLIENT Pclient; Pclient = (LPCLIENT) malloc( sizeof(CLIENT));if (WSAStartup(MAKEWORD(2,0), &wsa) != 0) fatal( "Accès au réseau impossible!!! Erreur WSAStartup");if((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET)fatal( "Création de la socket!!!");sin_serveur.sin_addr.s_addr = INADDR_ANY; sin_serveur.sin_family = AF_INET; sin_serveur.sin_port = htons(7); if (bind(sock, (SOCKADDR *)&sin_serveur, sizeof(sin_serveur)) == SOCKET_ERROR)fatal( "Bind!!!");if(listen(sock, 5) == SOCKET_ERROR)fatal( "Listen!!!");sinsize = sizeof(Pclient->sin_client);printf("En attente de client...\n");__accept_client: if((Pclient->sock_client = accept(sock, (SOCKADDR *)&Pclient->sin_client, &sinsize)) == INVALID_SOCKET)fatal( "accept!!!");CreateThread(NULL, 0, thread_client, (LPVOID) Pclient, 0, &idt); goto __accept_client; } *******************
donc si quelqun pourai me dire dou vien mon erreur et surtou si c'est bien comme sa con passe un argument a un thread. ++
|
|
jeudi 16 avril 2009 à 11:48:55 |
Re : erreur serveur multitheard en c

dyroj
|
excuser moi pour le mot enfoirer j'ai pas fai expres de le maitre. enfoirer > envoyer
|
|
vendredi 17 avril 2009 à 19:17:25 |
Re : erreur serveur multitheard en c

goodboy21
|
salut, ton soucis vient du fait que tu passe le même objet "Pclient" pour chaque thread, du coup tes anciennes sock sont écrasé à chaque fois que tu reçois un nouveau client. il faut que tu utilises un pointeur "Pclient" et que tu en crée autant fois que tu as de clients et n'oublies pas de libérer la mémoire à la fin de chaque thread. j'espère que ça d'aidera .
|
|
Cette discussion est classée dans : serveur, client, sin, sock, pclient
Répondre à ce message
Sujets en rapport avec ce message
PROBLEME CLIENT SERVER [ par zzzzzz ]
Mon client marche c sur et il envoie bien abcd mais monserver marche po je suis debutant en server socket... :(je sais pas comment faire en sorte que
Probleme de Client Serveur [ par Krox68 ]
voila jaimerais faire un programme client qui puisse se connecter a ce serveur : #include void main(){ WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WS
client serveur [ par elanspeech ]
Bonjour,Je suis en train de programmer un petit client serveur en C pour windows avec dev-c++. J'obtiens l'erreur suivante a la compilation : D:\DEV-C
problème socket sous windows [ par kod32 ]
Voici mon code : (winsock2.h)-----------------------------int main(){ /* inialisation */ WSADATA wsa; WSAStartup(MAKEWORD(2,0), &wsa); /*
[serveur]telecharger fichier [ par lombredudragon ]
Avec les socket je debute et j'aimerais me faire un serveur en c ou c++ ou kan on se connect au port 23 par telnet on recoit automatiquement un fichie
Client/Serveur, encore..... [ par glubust ]
Je veux faire fonctionner une application client/serveur sous UNIX (client) et WINDOWS (serveur).Le programme client envoi une simple requête au serve
probléme d'allocation mémoire ? [ par templeofboom ]
dans le cadre du développement d'une application de socket sous devcpp je me retrouve bizarrement coincé a cause d'une erreur d'allocation mémoire à
Fiabiliser transfert par socket [ par masseur ]
Salut. Je vais vous expliquer mon petit problème. Je crée un client et un serveur. Des que le serveur recoit une demande il envoie un fichier en ut
à vos sockets, prêt, GO [ par mimou20052005 ]
à vos sockets, prêt, GO Bon voila les gars j'ai enfin pu réaliser un client et un serveur en C++ (win 32 console application), mais j'ai un petit prob
Boucle de connection client TCP [ par ssmint ]
Bonjour à tous,Mon dernier souci en date est de pouvoir créer une un client qui essaie de se connecter toutes les secondes.Je fais donc une boucle ave
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
|