à vos sockets, prêt, GO

mimou20052005 Messages postés 3 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 1 juillet 2005 - 29 juin 2005 à 19:51
mimou20052005 Messages postés 3 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 1 juillet 2005 - 1 juil. 2005 à 00:51
à 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
#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 : "<
#include <string.h>
#include
#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 !!???!!


}
}

8 réponses

juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
29 juin 2005 à 20:00
Salut,


Deja ajoute un \n àprés la requette ensuite utilise plutot un strlen() au troisieme argumment de ta send().
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 juin 2005 à 20:31
C'est con d'appeler strlen sur une chaine qu'on connait deja, plutot utiliser sizeof dans ce cas
0
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
29 juin 2005 à 23:10
Salut,

le message s'affiche bien, il n'y a pas d'erreur (?).
0
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
29 juin 2005 à 23:10
Salut,

le message s'affiche bien, il n'y a pas d'erreur (?).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
29 juin 2005 à 23:11
Désolé pour le doublon
0
mimou20052005 Messages postés 3 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 1 juillet 2005
30 juin 2005 à 00:48
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
0
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
30 juin 2005 à 07:12
chez moi le message s'affiche sur le client et sur le serveur.
0
mimou20052005 Messages postés 3 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 1 juillet 2005
1 juil. 2005 à 00:51
merci les gars le pb est réglé
0
Rejoignez-nous