begin process at 2012 05 30 05:40:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Réseau & Internet

 > 

problèmes serveur


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

problèmes serveur

mardi 12 décembre 2006 à 19:05:32 | problèmes serveur

deck_bsd

Membre Club

Bonjour à tous,

Voila je me met à la programmation réseaux et j'ai commencé par une simple appli console client-serveur. Mon serveur est censé recevoir des messages du client et les afficher , seulement voila : Il ne le fait pas, la connection se passe très bien , tout est testé et cela fonctionne. Le problème est que recv est censé attendre après une reception de donnée, mais sur mon serveur juste après la connection du client, l'instruction recv s'éxécute alors que je n'ai mm pas eu le temps d'envoyé un message avec mon client :s . Et évidement cela plante.

Si quelqu'un pouvait m'aider , je join à ce post le code de mon serveur :

#include <stdio.h>
#include <winsock2.h>

int main(void){
    char szMsg[600+1]="";
    struct sockaddr_in saiServerSock = {0};
    struct sockaddr_in saiClientSock = {0};
    int iServerSockID;
    int iClientSockID;
    int iSizeSockClient;
    int iRecvData;
    WSADATA wsaData;
   
    WSAStartup(MAKEWORD(2,0),&wsaData);
   
    iServerSockID = socket(AF_INET,SOCK_STREAM,0);
   
    if(iServerSockID == -1)
    {
        printf("\n<error> Function : socket()");
        fflush(stdin);
        scanf("%*c");
        WSACleanup();
        return 1;
    }
   
    saiServerSock.sin_family = AF_INET;
    saiServerSock.sin_port = htons(2000);
    saiServerSock.sin_addr.s_addr = INADDR_ANY;
   
    /* mise sur écoute du port. */
    bind(iServerSockID,(struct sockaddr*)&saiServerSock,sizeof(saiServerSock)); /* Lie le socket à un port. */
   
    listen(iServerSockID,2); /* 2 : Nombre d'écoute possible du serveur. */
   
    iSizeSockClient = sizeof(saiClientSock);
   
    if(iClientSockID = accept(iServerSockID,(struct sockaddr*)&saiClientSock,&iSizeSockClient) != INVALID_SOCKET){
    printf("\n::::: Client connected");
   
    short sContinue = 1;
   
    while(sContinue)
    {
           
            iRecvData = recv(iClientSockID,szMsg,sizeof(szMsg)-1,0);
            if(iRecvData == SOCKET_ERROR){
                printf("\n <error> function : recv()");
                sContinue=0;
            }else{
                szMsg[iRecvData] = 0;
                printf("\n Message : %s",szMsg);
            }
    }
    }
   
    closesocket(iServerSockID);
    WSACleanup();
}

J'espère vraiment que quelqu'un sait le pourquoi de ceci.
Merci d'avance.

++
deck_bsd
___________________________________
[ [ Lien ]]

mardi 12 décembre 2006 à 23:34:14 | Re : problèmes serveur

Xenul

Salut,

Désolé, chui crevé, cependant jpeu te filer quelques liens qui pourront peut-être t'aider a trouver ton probléme :

ici et la et pr finir, celui ci qui devrait être le mieu pr ton pb (ya des exemples serv / client) ^_-




mercredi 13 décembre 2006 à 18:14:32 | Re : problèmes serveur

deck_bsd

Membre Club
Merci pour ton aide, mais j'avai déjà ces liens, j'ai mm dl une source de cppfrance et franchement je ne voi absolument pas ce qui cloche :s

++
deck_bsd
___________________________________
[ [ Lien ]]
mercredi 13 décembre 2006 à 18:38:30 | Re : problèmes serveur

yoyo269

Membre Club
Salut deck_bsd,

moi d'habitude au lieu de WSAStartup(MAKEWORD(2,0),&wsaData); je mets WSAStartup(MAKEWORD(2,2),&wsaData);
Je pense pas que ça va résoudre ton problème mais sait on jamais !
Ca ne coûte rien d'essayer.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

mercredi 13 décembre 2006 à 23:42:26 | Re : problèmes serveur

ShareVB

salut,

si recv renvoie SOCKET_ERROR, qu'est ce que te renvoie WSAGetLastError...

ShareVB
jeudi 14 décembre 2006 à 15:00:48 | Re : problèmes serveur

deck_bsd

Membre Club
Héhé, salut yoyo , ben figure toi que avant j'avai 2,2 et j'ai essyer 2,0 pour voir, mais cela ne change rien mdr . Mais bon je me suis dit que vu que le code est pas très long, j'ai tout recoder, et cela fonctionne :s pourtant je ne voi absolument pas ce que j'ai fait de plus . Enfin bref now cela fonctionne.

Merci shareVB pour ton aide, mais j'ai pas eu le temps de voir mdr

++
deck_bsd
___________________________________
[ [ Lien ]]
jeudi 14 décembre 2006 à 15:11:30 | Re : problèmes serveur

yoyo269

Membre Club
lol. Tu veux dire qu'au bout du compte tu as exactement le même code ? Si oui, il y en a un qui fonctionne et pas l'autre ?

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

jeudi 14 décembre 2006 à 16:15:52 | Re : problèmes serveur

deck_bsd

Membre Club
A peu de chose près, j'ai juste remplacer les int par des SOCKET :s mais sinon, les verif sont les mm , la boucle est la mm :s

++
deck_bsd
___________________________________
[ [ Lien ]]
jeudi 14 décembre 2006 à 16:40:49 | Re : problèmes serveur

yoyo269

Membre Club
lol ! C'est quand même pas si peu que ça ! Et je l'avais même pas vu en plus.
Au moins maintenant je sais les effets que ça a de remplacer des SOCKET par des int ! (note pour plus tard )

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"

jeudi 14 décembre 2006 à 16:44:51 | Re : problèmes serveur

ShareVB

salut,

SOCKET : unsigned int * mais bon ca devrait pas gêner à ce point...il se peut qu'il y ait des problème de signe entre un pointeur et un int...

ShareVB

1 2

Cette discussion est classée dans : int, serveur, client, iserversockid, saiserversock


Répondre à ce message

Sujets en rapport avec ce message

Thread et socket besoin de conseil [ par kawito ] Salut,je desire realiser un client/serveur TCPle probleme est que les fonctions accept et recv sont bloquante.donc cela bloque l'affichage etc...mon p Erreur de tansmission (octet manquant) [ par makmibad ] Bonjour, je suis en train de développer un client serveur sous C++ et je rencontre des difficultes lors de la mise en oeuvre du serveur, je m'explique Meilleur moyen pour chat multi client. [ par deck_bsd ] Yop à tous,Voila , je suis en train de dévelloper un chat multi client pour le réseaux chez moi. Mais voila , en codant le serveur , je me trouve à un File de messages [ par samplaid ] Bonjour, Voici mon problème, j'ai plusieur client et un serveur. Chaque client se connecte a un canal de communication (avec la meme clé). Je passe u client serveur avec envoy successif de fichiers de même extention [ par salawi45 ] bonjour!j'ai parcouru plusieurs forums et à chaque fois on me parle de celui là, donc j'espère trouver ma réponse ici :-)je dévellope une application Aide client FTP [ par katson42 ] Bonjour à tous,dans le cadre d'un projet je dois réaliser un client FTP se connectant sur un serveur.J'ai réussi à créer la connexion avec le serveur boucle infinie et file de message [ par kyfranBibax ] Bonjour,j'ai un petit problème avec des files de messages et une boucle infinie.J'ai crée 2 programmes (un serveur et un cllient) qui communiquent via SOCKET Information serveur [ par kiki67100 ] Salut tout le monde,Je voudrais retirer les information d'un serveur UDP "Gta en multi-joueur" , juste renvoyez se que le client "Officiel" a envoyez Utilisé du multithread sous unix (C++) [ par Kenshiroooo ] Bonjour, très probablement qu'il existe déja un poste dans lequel il est expliquer ce que je vais dès maintenant vous demander... mais je pers patienc Serveur FTP utilisant le multithreading [ par ranzar ] Bonjour, Je suis entrain de développer une fonction sous C++ builder qui utilise un serveur FTP multithread: j'ouvre un serveur FTP sur ma machine et


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,529 sec (3)

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