begin process at 2012 05 29 21:46:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme de reception dans un serveur visual C++ pour windows


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

Probleme de reception dans un serveur visual C++ pour windows

jeudi 7 février 2002 à 15:38:40 | Probleme de reception dans un serveur visual C++ pour windows

alfred

Salut a tous!!

g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi.

voici les source du client et du serveur

Le Serveur :

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

#define port 15300

void serveur()
{
int socketserveur = 0;
int Appelantlen;int i=0;
struct sockaddr_in localaddr ;
char buf[50];
int nbcar = 0;
int test;
WSADATA wsaData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup( wVersionRequested, &wsaData );

localaddr.sin_family = AF_INET; /* Protocole internet */
localaddr.sin_addr.s_addr = INADDR_ANY; /* Toutes les adresses IP de la station */
localaddr.sin_port = htons(port); /* port d'écoute par défaut au dessus des ports réservés */

socketserveur = socket(AF_INET, SOCK_STREAM, 0);

if(socketserveur == INVALID_SOCKET)
{
perror("socket");exit(3);
}

if (bind(socketserveur,(struct sockaddr*)&localaddr,sizeof(localaddr) ) == SOCKET_ERROR)
{
printf("erreur bind\n");
exit(1);
}

if (listen(socketserveur,10) == SOCKET_ERROR)
{
printf("erreur listen\n");
exit(2);
}

Appelantlen = sizeof(localaddr);
test = accept(socketserveur,(struct sockaddr*)&localaddr, &Appelantlen);
printf("test = %d",test);
nbcar = recv(socketserveur,buf,50,0);
// perror("recv");
//catch(Exception e) {printf("\n ****** erreur = %s",e);}
printf("\n nbcar = %d\n",nbcar);
printf("buffer = %s\n",&buf);

shutdown(socketserveur,0);

WSACleanup( );

}

void main()
{
char car = 'a';
printf("%x", car);
serveur();
}


le client :

void main(int argc, char **argv){

int socketclient = 0;
int Appelantlen;int i=0;
struct sockaddr_in localaddr ;
char buf[255];
int nbcar = 0;
WSADATA wsaData;
WORD wVersionRequested;
int test,con,out,err;
struct hostent * host;
long int taille;
char * nom_machine;
struct sockaddr_in name;
struct in_addr in;
short af;

wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup( wVersionRequested, &wsaData );


socketclient = socket(AF_INET, SOCK_STREAM, 0);
printf("socket = %d \n",socketclient);
gethostname(&nom_machine,1000);

printf("nom_machine = %s",&nom_machine);
host = gethostbyname(&nom_machine);

memcpy(&in.S_un.S_addr,host->h_addr_list[0],host->h_length);


name.sin_family = AF_INET;
name.sin_port = htons(PORT);
name.sin_addr = in;
taille = sizeof(name);
con = connect(socketclient,(struct sockaddr *)&name,taille);

printf("con = %d",con);

test = send(socketclient,"ca marche",strlen("ca marche"),0);

printf("test = %d",test);
closesocket(socketclient);

}
jeudi 7 février 2002 à 18:47:57 | Re : Probleme de reception dans un serveur visual C++ pour windows

skysee

salut,
je pense que ca vient de la socket du serveur,
je voudrais savoir la valeur de ta socket (socketserveur).
Il faut absolument que ta socket soit positive.



-------------------------------
Réponse au message :
-------------------------------

Salut a tous!!

g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi.

voici les source du client et du serveur

Le Serveur :

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

#define port 15300

void serveur()
{
int socketserveur = 0;
int Appelantlen;int i=0;
struct sockaddr_in localaddr ;
char buf[50];
int nbcar = 0;
int test;
WSADATA wsaData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup( wVersionRequested, &wsaData );

localaddr.sin_family = AF_INET; /* Protocole internet */
localaddr.sin_addr.s_addr = INADDR_ANY; /* Toutes les adresses IP de la station */
localaddr.sin_port = htons(port); /* port d'écoute par défaut au dessus des ports réservés */

socketserveur = socket(AF_INET, SOCK_STREAM, 0);

if(socketserveur == INVALID_SOCKET)
{
perror("socket");exit(3);
}

if (bind(socketserveur,(struct sockaddr*)&localaddr,sizeof(localaddr) ) == SOCKET_ERROR)
{
printf("erreur bind\n");
exit(1);
}

if (listen(socketserveur,10) == SOCKET_ERROR)
{
printf("erreur listen\n");
exit(2);
}

Appelantlen = sizeof(localaddr);
test = accept(socketserveur,(struct sockaddr*)&localaddr, &Appelantlen);
printf("test = %d",test);
nbcar = recv(socketserveur,buf,50,0);
// perror("recv");
//catch(Exception e) {printf("\n ****** erreur = %s",e);}
printf("\n nbcar = %d\n",nbcar);
printf("buffer = %s\n",&buf);

shutdown(socketserveur,0);

WSACleanup( );

}

void main()
{
char car = 'a';
printf("%x", car);
serveur();
}


le client :

void main(int argc, char **argv){

int socketclient = 0;
int Appelantlen;int i=0;
struct sockaddr_in localaddr ;
char buf[255];
int nbcar = 0;
WSADATA wsaData;
WORD wVersionRequested;
int test,con,out,err;
struct hostent * host;
long int taille;
char * nom_machine;
struct sockaddr_in name;
struct in_addr in;
short af;

wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup( wVersionRequested, &wsaData );


socketclient = socket(AF_INET, SOCK_STREAM, 0);
printf("socket = %d \n",socketclient);
gethostname(&nom_machine,1000);

printf("nom_machine = %s",&nom_machine);
host = gethostbyname(&nom_machine);

memcpy(&in.S_un.S_addr,host->h_addr_list[0],host->h_length);


name.sin_family = AF_INET;
name.sin_port = htons(PORT);
name.sin_addr = in;
taille = sizeof(name);
con = connect(socketclient,(struct sockaddr *)&name,taille);

printf("con = %d",con);

test = send(socketclient,"ca marche",strlen("ca marche"),0);

printf("test = %d",test);
closesocket(socketclient);

}

lundi 11 février 2002 à 00:41:03 | Re : Probleme de reception dans un serveur visual C++ pour windows

alfred


ma socket est bien positive et je ne vois tjrs pas d'ou cela peut venir


-------------------------------
Réponse au message :
-------------------------------

salut,
je pense que ca vient de la socket du serveur,
je voudrais savoir la valeur de ta socket (socketserveur).
Il faut absolument que ta socket soit positive.



-------------------------------
Réponse au message :
-------------------------------

Salut a tous!!

g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi.

voici les source du client et du serveur

Le Serveur :

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

#define port 15300

void serveur()
{
int socketserveur = 0;
int Appelantlen;int i=0;
struct sockaddr_in localaddr ;
char buf[50];
int nbcar = 0;
int test;
WSADATA wsaData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup( wVersionRequested, &wsaData );

localaddr.sin_family = AF_INET; /* Protocole internet */
localaddr.sin_addr.s_addr = INADDR_ANY; /* Toutes les adresses IP de la station */
localaddr.sin_port = htons(port); /* port d'écoute par défaut au dessus des ports réservés */

socketserveur = socket(AF_INET, SOCK_STREAM, 0);

if(socketserveur == INVALID_SOCKET)
{
perror("socket");exit(3);
}

if (bind(socketserveur,(struct sockaddr*)&localaddr,sizeof(localaddr) ) == SOCKET_ERROR)
{
printf("erreur bind\n");
exit(1);
}

if (listen(socketserveur,10) == SOCKET_ERROR)
{
printf("erreur listen\n");
exit(2);
}

Appelantlen = sizeof(localaddr);
test = accept(socketserveur,(struct sockaddr*)&localaddr, &Appelantlen);
printf("test = %d",test);
nbcar = recv(socketserveur,buf,50,0);
// perror("recv");
//catch(Exception e) {printf("\n ****** erreur = %s",e);}
printf("\n nbcar = %d\n",nbcar);
printf("buffer = %s\n",&buf);

shutdown(socketserveur,0);

WSACleanup( );

}

void main()
{
char car = 'a';
printf("%x", car);
serveur();
}


le client :

void main(int argc, char **argv){

int socketclient = 0;
int Appelantlen;int i=0;
struct sockaddr_in localaddr ;
char buf[255];
int nbcar = 0;
WSADATA wsaData;
WORD wVersionRequested;
int test,con,out,err;
struct hostent * host;
long int taille;
char * nom_machine;
struct sockaddr_in name;
struct in_addr in;
short af;

wVersionRequested = MAKEWORD( 2, 0 );
WSAStartup( wVersionRequested, &wsaData );


socketclient = socket(AF_INET, SOCK_STREAM, 0);
printf("socket = %d \n",socketclient);
gethostname(&nom_machine,1000);

printf("nom_machine = %s",&nom_machine);
host = gethostbyname(&nom_machine);

memcpy(&in.S_un.S_addr,host->h_addr_list[0],host->h_length);


name.sin_family = AF_INET;
name.sin_port = htons(PORT);
name.sin_addr = in;
taille = sizeof(name);
con = connect(socketclient,(struct sockaddr *)&name,taille);

printf("con = %d",con);

test = send(socketclient,"ca marche",strlen("ca marche"),0);

printf("test = %d",test);
closesocket(socketclient);

}




Cette discussion est classée dans : int, printf, struct, localaddr, socketserveur


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 Passage par adresse d'un tableau de structures. [ par alekine ] Bonjour, j'ai un problème pour passer par adresse un tableau de structures. Voilà mon code:#include #define L_MAX 2struct point //la structure d'un p Comment imprimer le contenu d'une structure? [ par madalf17 ] Salut, j'aimerai savoir comment imprimer le contenu d'une structure.Voici une partie du code dont la fonction affichage, je voudrai imprimer ce que ce Trier une structure indexée [ par RootASM ] Bonjour,J'ai écrit un programme qui permet de faire des recherches, ajout, suppression sur une liste de membres.Je dois trier cette liste de nom, lors probleme affichage structure [ par lil_adriano ] Slt tous le monde j'ai un souci avec l'affichage de mes structures. je dois faire la gestion d'une pizzeria.j'ai cree les structure et quelques proced Fonction recherche (listes chainées) [ par adri10 ] Bonjour à tous, Bon voilà j'ai un gros problème avec ma fonction recherche en liste chainées. Je pensais que mon programme était correct puisqu'en le gestion d'une bibliothèque [ par samanta26 ] slt, j'ai besoin d'aide SVP!![^^sad2] j'ai un mini projet de gestion d'une bibliothèque!! je dois implémenter un ensemble de fonctions :saise, tri, re Programme en c++ [ par noussa44 ] Bonjour tout le monde, j'ai besoin svp de vore aide sur un programme que j'ai fait qui permet de trier des réels dans un tableau.Mais j'ai un problèm Probleme : Sudoku en C [ par seth59222 ] Bonsoir, voila je suis actuellement en première année d'info, donc assez novice et je viens de créer ce petit bout de programme en C qui consiste a ré Besoin d'aide-Interface Graphique [ par nissan1 ] Bonjour, s'il vous plait je suis debutant en programmation et j'ai fait un programme en C sous l'IDE codeblocks, qui utilise les elements d'une matri


Nos sponsors


Sondage...

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 : 0,702 sec (3)

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