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

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

à vos sockets, prêt, GO


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

à vos sockets, prêt, GO

mercredi 29 juin 2005 à 19:51:10 | à vos sockets, prêt, GO

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 ...

Quand le client se connecte au serveur ce dernier  envoie le
message "Hello BB!"; jusqu'à ici c'est bon. A son tour le client veut
saluer le serveur en lui envoyant un message "Hello AA" au niveau du serveur
il ne s'affiche rien. je ne sais pas est ce que le client n'envoie pas
le message ou le serveur ne la reçoit pas.

svp aidez-moi en toute urgence.
de la discussion jaillit la lumière.

//voici code source client :
#include <winsock2.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#pragma comment(lib, "ws2_32.lib")


void main(int argc,char **argv)
{
 
if (argc == 3)
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;

char *buffer = new char[50];

hostent *serveur;
serveur = new hostent;


sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr   = inet_addr(argv[1]);
//sin.sin_addr = *(struct in_addr *) serveur->h_addr;
sin.sin_family    = AF_INET;
sin.sin_port    = htons(atoi(argv[2]));

if ( connect(sock, (SOCKADDR *)&sin, sizeof(sin)) >= 0)
{cout<<"Connection established!"<<endl;

int ssin = sizeof(sin);
recvfrom(sock,buffer,14*sizeof(buffer),0,(SOCKADDR *)&sin,&ssin);
cout<<"Connection on : "<<inet_ntoa(sin.sin_addr)<<endl;

cout<<buffer<<endl; //ici le message du serveur s'affiche sur le client

send (sock,"Hello AA!",14,0); //messsage envoyé au serveur


}
// en cas d'échec de connexion
else cout<<"Connection failure!"<<endl;

}
 else
 {
  cout<<"invalid number of parameters!"<<endl;
  exit(0);
 }

}


//code source serveur

include <winsock2.h>
#include <string.h>
#include <iostream.h>
#include <stdlib.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
 char *buffer = new char[50];

WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr   = htonl(INADDR_ANY);
sin.sin_family    = AF_INET;
sin.sin_port    = htons(33);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
while(1)
{
int sinsize = sizeof(csin);

if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
send(csock, "Hello BB!", 14, 0); //message envoyé au client
}

int ssin = sizeof(csin);
recvfrom(csock,buffer,14*sizeof(buffer),0,(SOCKADDR *)&csin,&ssin);
cout<<buffer<<endl; //EN PRINCIPE LE SERVEUR AFFICHE LE MESSAGE DU
                    //CLIENT, MAIS IL N'AFFICHE RIEN !!???!!

}
}

mercredi 29 juin 2005 à 20:00:13 | Re : à vos sockets, prêt, GO

juki_webmaster

Membre Club

Salut,

Deja ajoute un \n àprés la requette ensuite utilise plutot un strlen() au troisieme argumment de ta send().
mercredi 29 juin 2005 à 20:31:12 | Re : à vos sockets, prêt, GO

vecchio56

Administrateur CodeS-SourceS
C'est con d'appeler strlen sur une chaine qu'on connait deja, plutot utiliser sizeof dans ce cas
mercredi 29 juin 2005 à 23:10:36 | Re : à vos sockets, prêt, GO

jcqguill

Salut,
le message s'affiche bien, il n'y a pas d'erreur (?).
mercredi 29 juin 2005 à 23:10:48 | Re : à vos sockets, prêt, GO

jcqguill

Salut,
le message s'affiche bien, il n'y a pas d'erreur (?).
mercredi 29 juin 2005 à 23:11:23 | Re : à vos sockets, prêt, GO

jcqguill

Désolé pour le doublon


jeudi 30 juin 2005 à 00:48:47 | Re : à vos sockets, prêt, GO

mimou20052005

jcqguill, au niveau du client le message s'affiche,mais au niveau du serveur le message ne s'affiche pas !!! je sais c pas logqiue mais !!!??

bon si j'arrive à le faire marcher je vous contacterais
merci les gars
jeudi 30 juin 2005 à 07:12:40 | Re : à vos sockets, prêt, GO

jcqguill

chez moi le message s'affiche sur le client et sur le serveur.
vendredi 1 juillet 2005 à 00:51:34 | Re : à vos sockets, prêt, GO

mimou20052005

merci les gars le pb est réglé


Cette discussion est classée dans : serveur, include, sin, sock, sockaddr


Répondre à ce message

Sujets en rapport avec ce message

probleme de communication entre deux programme [ par smook ] re salut le dernier message que j ai poster c etait pour les socket et la librairie "libwsock.a" mais sayer j ai passer cette etape j ai reussi a fair C++ Serveur web [ par kiki67100 ] Bonjour J'ai commencé a faire un serveur Pour affiché du texte sur le client Voici le code#include #include #include #include c<br Reseaux/Sockets pb client/serveur [ par Rayn3d ] Bonjour tous le monde, j'ai un probleme avec un programme en reseaux client/serveur : lorsque j'envoie un message au client il se decoupe en plusieu Pb chaine de caractères [ par baptchr55 ] Bonjour à tous encore une fois j'ai besoin de votre aide. J'essaye d'envoyer par le biais d'un socket une chaine de caractères. Ce qui fonctionne, se Chaine de caractères Via Socket [ par baptchr55 ] Bonjour à tous encore une fois j'ai besoin de votre aide. J'essaye d'envoyer par le biais d'un socket une chaine de caractères. Ce qui fonctionne, se Problèmes avec les Socket [ par baptchr55 ] Bonjour à tous, Je suis ennuyé avec la création de socket. J'aimerais pouvoir envoyer des données (dans un premier temps que j'écris) une par une se aide creation serveur t'chat [ par crazygoth ] Bonjour Je dois réaliser un projet qui consiste a faire un serveur de t'chat en c sous Linux. je précise que je débute sous Linux et c également. Ma erreur bind: Address already in use [ par andoid ] Bonjour j'ai mon programme suivant qui marche et je suis en route pour creer mon serveur pour l'instant le client qui se connecte je lui envoi juste 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 erreur serveur multitheard en c [ par 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 q


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,624 sec (3)

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