Devil's_Tiger, Mehjret Overclocking : EeKy NoX Le salon de discussion : mdog, MOUS, 1 utilisateur anonyme et 17 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

client serveur en C help!

n°2248
cacaprout
et ...prout [guigui668 inside]
Posté le 18-03-2004 à 11:58:49  profilanswer
 

coucou les gens
je cherche a faire un client serveur pour un projet en C
j'ai deja fait ca pour le serveur:
 
#include <winsock.h>
#pragma comment(lib, "wsock32.lib" )
#include <stdio.h>
main(){
 
WSADATA WSAData;
WSAStartup(MAKEWORD(1,0), &WSAData);
dawa();
}
 
 
dawa(){
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
 
int erreurbind,erreurlisten;
 
printf("serveur\n" );
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(4148);
erreurbind=bind(sock, (SOCKADDR *)&sin, sizeof(sin));
printf("erreur bind=%d",erreurbind);
erreurlisten=listen(sock, 0);
printf("\nerreur listen=%d",erreurlisten);
 
while(1)
{
int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
send(csock, "Hello world!\r\n", 14, 0);
}
}
}

 
 
et pour le client
 
#include <winsock.h>
#pragma comment(lib, "ws2_32.lib" )
#include <stdio.h>
main(){
WSADATA WSAData;
WSAStartup(MAKEWORD(1,0), &WSAData);
sockette();
system("pause" );
}
 
sockette(){
int erreurconnect;
SOCKET sock;
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
sin.sin_family  = AF_INET;
sin.sin_port  = htons(4148);
sock = socket(AF_INET,SOCK_STREAM,0);
 
erreurconnect=connect(sock, (SOCKADDR *)&sin, sizeof(sin));
printf("E connect = %d ",erreurconnect);
 
}

 
je ne vois pas comment aller plus loin
j'ai une erreur sur le serveur une fois que le client est connecté  
je n'arrive pas a les faire se detecter !


Message édité par cacaprout le 18-03-2004 à 15:31:01
mood
Google
Posté le 18-03-2004 à 11:58:49  profilanswer
 

n°2249
nicodache
marmotte en chocolat concept ©
Posté le 18-03-2004 à 13:43:15  profilanswer
 

déja, balises [cpp] powaa :D
même si c'est du c


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°2251
cacaprout
et ...prout [guigui668 inside]
Posté le 18-03-2004 à 15:29:54  profilanswer
 

comment fait on ?

n°2252
nicodache
marmotte en chocolat concept ©
Posté le 18-03-2004 à 15:35:24  profilanswer
 

bein tu tapes ton code dans entre les balises pour que ca soit plus lisible pour nous :)
 

Code :
  1. #include <winsock.h>
  2. #pragma comment(lib, "wsock32.lib" )
  3. #include <stdio.h>
  4. main(){
  5.     WSADATA WSAData;
  6.     WSAStartup(MAKEWORD(1,0),&WSAData);
  7.     dawa();
  8. }
  9. dawa(){
  10.     SOCKET sock;
  11.     SOCKET csock;
  12.     SOCKADDR_IN sin;
  13.     SOCKADDR_IN csin;
  14.     int erreurbind,erreurlisten;
  15.     printf("serveur\n" );
  16.     sock = socket(AF_INET, SOCK_STREAM, 0);
  17.     sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
  18.     sin.sin_family = AF_INET;
  19.     sin.sin_port = htons(4148);
  20.     erreurbind = bind(sock,(SOCKADDR *)&sin, sizeof(sin));
  21.     printf("erreur bind = %d", erreurbind);
  22.     erreurlisten = listen(sock, 0);
  23.     printf("\nerreur listen = %d", erreurlisten);
  24.     while(1) { /* les while(1) saimal © */
  25.         int sinsize = sizeof(csin);
  26.         if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET) {
  27.             send(csock, "Hello world!\r\n", 14, 0);
  28.         }
  29.     }
  30. }


 
et
 

Code :
  1. #include <winsock.h>
  2. #pragma comment(lib, "ws2_32.lib" )
  3. #include <stdio.h>
  4. main(){
  5.     WSADATA WSAData;
  6.     WSAStartup(MAKEWORD(1,0), &WSAData);
  7.     sockette();
  8.     system("pause" );
  9. }
  10. sockette(){
  11.     int erreurconnect;
  12.     SOCKET sock;
  13.     SOCKADDR_IN sin;
  14.     sin.sin_addr.s_addr = inet_addr("127.0.0.1" );
  15.     sin.sin_family = AF_INET;
  16.     sin.sin_port = htons(4148);
  17.     sock = socket(AF_INET,SOCK_STREAM,0);
  18.     erreurconnect = connect(sock, (SOCKADDR *)&sin, sizeof(sin));
  19.     printf("E connect = %d ",erreurconnect);
  20. }


 
ca ira la ?
 
note que ton code me semble quand même pas top... c'est du C sous windoze quoi [:grut]


---------------
modérateur inside [:nicodache] plankaivoo [:nicodache] - ici powered - Je roule en micra 1l 55cv et je t'emmerde :o
n°2255
CryoGen
Powered by kitkat©
Posté le 18-03-2004 à 22:45:13  profilanswer
 

Server mono client..; j'ai jms reussi à en faire un lol, je suis passer direct au server multiclient :D un bon fork() et c tout bon :p
 
dsl j vois pas où est le probleme (j'ai pas trop cherché non plus :/)
 
P-e la longueur du message, t'a mis 14 alors que c'est 15 si on compte le \0 de fin non ?


Message édité par CryoGen le 18-03-2004 à 22:52:37

---------------
I am the bone of my sword...
n°2277
cacaprout
et ...prout [guigui668 inside]
Posté le 21-03-2004 à 19:20:48  profilanswer
 

oki et bien j'ai réussi tout seul a me faire un petit chat non multithread mais bon c'est deja un debut
merci windows :D

mood
Google
Posté le 21-03-2004 à 19:20:48  profilanswer
 


Aller à :
Ajouter une réponse
 

Hit Parade