begin process at 2012 05 30 10:25:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

utilisation basique de winsock


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

utilisation basique de winsock

vendredi 5 novembre 2004 à 13:12:44 | utilisation basique de winsock

Spiffou

bonjour à tous
j'essaie d'apprendre winsock en vc++ mode console pour le moment, et j'ai qlq difficultés...

en gros j'etabli bien une connection entre le serveru et le client , mais lorsque le serveur envoie une chaine de char, seul les 4 premiers char passent... et j vois pas pkoi....

j'ai deja pas mal cherché sur les forum etc pour comprendre comment out cela marchait; mais là je suis un peu perdu...

ps: pardon pour l'indentation les tests et les commentaires, mais j suis pas chez moi et c'est pas mais version originale du code

je remercie d'avance tous ceux qui mpourraient me donner un ptit coup de main

voila le code:

//
// serveur
//

#include "stdafx.h"
#include "winsock2.h"
#pragma comment(lib, "ws2_32.lib")


int main(int argc, char* argv[])
{

printf("Serveur\n");

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 = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(6667);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
while(1)
{
int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
printf("connection acceptee\n");
char *buff = new char[25];
buff = "LLLLL world!\r\n\0";
send(csock, buff, sizeof(buff), 0);
printf ("chaine send : %s\n",buff);
}
}

return 0;
}


//
// Client
//

#include "stdafx.h"
#include "winsock2.h"
#pragma comment(lib, "ws2_32.lib")


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

printf("Client\n");


WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char *buffer = new char[25];
/* Tout est configuré pour se connecter sur IRC, haarlem, Undernet. */
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(6667);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
recv(sock, buffer, sizeof(buffer), 0);

printf("buff = %s\n",buffer);

closesocket(sock);
WSACleanup();

//return 0;
}

vendredi 5 novembre 2004 à 13:40:48 | Re : utilisation basique de winsock

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
C'est normal car sizeof(buffer) est toujours égale à 4. buffer étant un pointeur donc sa taille est toujours 4. Tu dois revoir la déclaration de ton tableau. Pas besoin d'allocation dynamique. Tu peux le déclarer comme ceci:
char buffer[25];
et tout rentrera dans l'ordre. A corriger dans le code serveur et client.

vendredi 5 novembre 2004 à 13:59:32 | Re : utilisation basique de winsock

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
J'ai oublié de préciser qu'il faudra correctement initialiser le buffer dans le code serveur:
char buffer[25];
strcpy(buffer,"LLLLL world!\r\n\0");
samedi 6 novembre 2004 à 15:50:42 | Re : utilisation basique de winsock

Spiffou

merci beaucoup pour ta reponse...
l'erreur avait rien a voir avce le reseau mais j'etait focalisé sur les socket...
^^

comme quoi : vigilance constante....

lol



Cette discussion est classée dans : socket, char, sin, sock, wsadata


Répondre à ce message

Sujets en rapport avec ce message

PROB SOCKETS CON [ par zzzzzz ] le code source marche mais quand je rajoute un cout#include #pragma comment(lib,"ws2_32.lib")#include int main(void) [SOCKET]Tjrs le pb de recuperation du buffer recv() [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur Socket, quand tu nous tiens ... [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur Liaison client/serveur (socket) [ par bthivent ] Bonjour !J'ai suivi un tutorial pour apprendre les sockets. J'ai ensuite essaiyé un exemple qu'ils proposaient, voici mon code qui permet de faire un pb de compilation (prog utilisant un socket) [ par smook ] boujour a tous bon je vais commencer part bien vous detailler ce qui a detailler : j utilise dev c++ 4.9.9.2 et mon ^programme a pour but d ecouter un Probléme pour lire le buffer au lancement de la connexion [ par logant83 ] Bonsoir, voila enfaite j'ai établi une connexion sur un server irc grace au socket mais quand je recois sur le buffer les différente informations (Ell winsock 2 listen [ par lektrosonic ] Bonjour, ceci est mon bou de code, je veu mette le socket en mode listen, mais de ke je le fait, ca plante...ce bout de code est sous win32 et la fene Problème de connexion Socket [ par qhhu ] Bonjour !En temp normal, je programme en java, mais j'ai voulu essayer le c++parce que je trouve que c'est interessant de connaître plusieurs language Bind echouant.. [ par lektrosonic ] Bonsoir, deux applications, bon pour etre original: serveur et client.Chacune de leur cote effectue ce code:Serveur:----------------------   if(WSASta probleme de send en C avec socket [ par thorn74 ] bonjour je suis actuellement en IUT info et G un  projet a faire mais je bloque je doit fair eun petit programme ou lorsqu'un ordinateur se connecte a


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 : 0,452 sec (4)

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