[C] Client / Serveur
kij_82
Messages postés
4089
Date d'inscription
Statut
Contributeur
Dernière intervention
-
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
Bonjours,
je demande votre aide pour la création d'un prog client, et d'un prog serveur en C .... sous windows !
Oui, sous Unix / Linux c'est simple, mais sous windows c'est carément merdique !
J'utilise Microsoft Visual C++ 6.0. Je voudrais avoir un exemple de prog pour les deux cas (client et serveur) (ca c'est pas trop dur). J'en ai déjà un pour linux, et pour windows mais de dernier ne marche pas donc je prefere partir d'une autre base.. donc si vous avez...
Je voudrais également savoir ce qu'il faut rajouter à la compil et pour linker pour que ca marche car moi il me met (pour ceux que j'ai déjà fait) comme quoi le type 'SOCKET' est mal utilisé... et ce pour tout les types de données déclaré dans 'winsock2.h' !!
Je comprend pas trop alors si qqun a l'immense gentillesse de m'aider je l'en remercie beaucoup.
++
je demande votre aide pour la création d'un prog client, et d'un prog serveur en C .... sous windows !
Oui, sous Unix / Linux c'est simple, mais sous windows c'est carément merdique !
J'utilise Microsoft Visual C++ 6.0. Je voudrais avoir un exemple de prog pour les deux cas (client et serveur) (ca c'est pas trop dur). J'en ai déjà un pour linux, et pour windows mais de dernier ne marche pas donc je prefere partir d'une autre base.. donc si vous avez...
Je voudrais également savoir ce qu'il faut rajouter à la compil et pour linker pour que ca marche car moi il me met (pour ceux que j'ai déjà fait) comme quoi le type 'SOCKET' est mal utilisé... et ce pour tout les types de données déclaré dans 'winsock2.h' !!
Je comprend pas trop alors si qqun a l'immense gentillesse de m'aider je l'en remercie beaucoup.
++
A voir également:
- [C] Client / Serveur
- Cybera client - Télécharger - Divers Réseau & Wi-Fi
- Changer serveur dns - Guide
- Filezilla client - Télécharger - Téléchargement & Transfert
- Filezilla client ou serveur ✓ - Forum Réseau
- Formate pour taxer client frigo vide ✓ - Forum Matériel & Système
20 réponses
Euh le CORBA ça existe sous Windows ? Normalement c'est fait pour développer des applis clients serveur en C++/Java.
J'aurais bien voulu t'aider pour te rendre l'ascenseur parce que tu m'as pas mal aidé, mais là je connais vraiment pas assez pour pouvoir t'aider. Désolé.
Il y a de la prog de sockets dans les MFC, ca se rapproche d'unix non? Va voir sur msdn, je pense que c'est expliqué dans l'aide en ligne.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut kij_82
tu t'attend à ce que je t'aide? oui? non? bon, je vais essayer bien que je ne suis specialiste en Visual C++ (mais plustot en VB)
mais bon, pour ce vieux kij, on fait une exception!
tu t'attend à ce que je t'aide? oui? non? bon, je vais essayer bien que je ne suis specialiste en Visual C++ (mais plustot en VB)
mais bon, pour ce vieux kij, on fait une exception!
kij, tu n'es pas tenté d'utiliser autre chose que Visual C++, tel que Dev-C++ (gratuit et sous windows)???
Salut,
J'ai trouvé ça sur le net:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2241&lngWId=3
Il me semble me rappeler que l'API socket de windows est similaire à l'API
socket d'UNIX moyennant le chargement de la dll qui va bien.
J'ai trouvé ça sur le net:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2241&lngWId=3
Il me semble me rappeler que l'API socket de windows est similaire à l'API
socket d'UNIX moyennant le chargement de la dll qui va bien.
salut, vas sur http://www.cppfrance.com tu y trouveras bcoup de code et il doit y avoir du code sur client serveur, tu fais une recherche, c'est une vrair base de données de code .
Ben corba si je me souviens bien (c'est lointain et j'aimais pas ça ;o) ) tu écris un prototye (fichier idl), tu le compiles, et ça te génère le code c++ qui va avec. Maintenant évidemment si c'est juste du C et pas de C++ que tu veux faire...
Quelqun qui connait le C et le C++ :
pourrati -t-il me faire la conversion de ce code C++ en C, s'il vous plait :) :
J'ai beau essayé (au niveau des include ca bloque si je converti en C), j'y arrive pas !!
Grand merci.
++
pourrati -t-il me faire la conversion de ce code C++ en C, s'il vous plait :) :
#include <iostream> #include <stdlib.h> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") using namespace std; #define MAX_RQT 100; int main(int argc, char *argv[]) { int port; printf("**********Serveur**********\n"); printf("Port que doit utiliser le serveur :"); scanf("%d",&port); WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKET csock; SOCKADDR_IN sin; SOCKADDR_IN csin; sock = socket(AF_INET, SOCK_STREAM, 0); if(sock == SOCKET_ERROR) printf("erreur socket()\n"); sin.sin_addr.s_addr = INADDR_ANY; sin.sin_family = AF_INET; sin.sin_port = htons(port); if(bind(sock, (SOCKADDR *)&sin, sizeof(sin)) == SOCKET_ERROR) printf("erreur bind(): %d\n", WSAGetLastError()); if(listen(sock, 0) == SOCKET_ERROR) printf("erreur listen(): %d\n", WSAGetLastError()); printf("Serveur en route...\nPort = %d\n",port); while(1) { int sinsize = sizeof(csin); if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET) { send(csock, "Bienvenue chez moi !\r\n", 23, 0); } } system("PAUSE"); return 0; }
J'ai beau essayé (au niveau des include ca bloque si je converti en C), j'y arrive pas !!
Grand merci.
++
ca a l'air marrant ton truc dis moi !! ; )
Ben ca marche mais j'arrive pas à le mettre en C....
Tant pis, apres faut que je le couple avec mon module C qui appelle le module Perl, et que je fasse un client qui envoie la requete, et le serveur qui lui répond avec le résultat...
Je crois que jamais je n'ai utilisé autant de langage dans un même programme (C / C++ / XS / Perl). Un beau cocktail bien marrant ma fois...
Tant pis, apres faut que je le couple avec mon module C qui appelle le module Perl, et que je fasse un client qui envoie la requete, et le serveur qui lui répond avec le résultat...
Je crois que jamais je n'ai utilisé autant de langage dans un même programme (C / C++ / XS / Perl). Un beau cocktail bien marrant ma fois...
bonjour kij,
j'ai tester ton programme avec un compilateur C (Dev-C++ en mode projet C) et ça compile tres bien
ton probleme viens des lignes (que tu dois supprimer!):
ensuite tu doit inclure dans le LINKER un parametre pour integrer la librairie WinSock2 (dans mon cas c'est "libwsock32.a"), mais ça pourrais etre "ws2_32.lib" pour toi, je ne sait pas!
j'ai tester ton programme avec un compilateur C (Dev-C++ en mode projet C) et ça compile tres bien
ton probleme viens des lignes (que tu dois supprimer!):
#include <iostream> #pragma comment(lib, "ws2_32.lib") using namespace std;
ensuite tu doit inclure dans le LINKER un parametre pour integrer la librairie WinSock2 (dans mon cas c'est "libwsock32.a"), mais ça pourrais etre "ws2_32.lib" pour toi, je ne sait pas!
Oui sam, c'est pour cela que je met :
Ca sert à include la librairie sans changer la config su compilo à la main.
Par contre je suis conscient qu'il faut enlevé
Et c'est ce que j'ai fait mais il me fait les erreurs suivantes (en rajoute stdio.h bine sur avant :
Tu sais quelle include il faut mettre ou comment corriger ce genre d'erreurs.. ?
#pragma comment(lib, "ws2_32.lib")
Ca sert à include la librairie sans changer la config su compilo à la main.
Par contre je suis conscient qu'il faut enlevé
#include <iostream> using namespace std;
Et c'est ce que j'ai fait mais il me fait les erreurs suivantes (en rajoute stdio.h bine sur avant :
--------------------Configuration: serveur - Win32 Debug-------------------- Compiling... serveur.c c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(23) : error C2275: 'WSADATA' : illegal use of this type as an expression c:\program files\microsoft visual studio\vc98\include\winsock2.h(386) : see declaration of 'WSADATA' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(23) : error C2146: syntax error : missing ';' before identifier 'WSAData' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(23) : error C2065: 'WSAData' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(24) : warning C4133: 'function' : incompatible types - from 'int *' to 'struct WSAData *' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(25) : error C2275: 'SOCKET' : illegal use of this type as an expression c:\program files\microsoft visual studio\vc98\include\winsock2.h(85) : see declaration of 'SOCKET' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(25) : error C2146: syntax error : missing ';' before identifier 'sock' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(25) : error C2065: 'sock' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(26) : error C2275: 'SOCKET' : illegal use of this type as an expression c:\program files\microsoft visual studio\vc98\include\winsock2.h(85) : see declaration of 'SOCKET' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(26) : error C2146: syntax error : missing ';' before identifier 'csock' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(26) : error C2065: 'csock' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(27) : error C2275: 'SOCKADDR_IN' : illegal use of this type as an expression c:\program files\microsoft visual studio\vc98\include\winsock2.h(3576) : see declaration of 'SOCKADDR_IN' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(27) : error C2146: syntax error : missing ';' before identifier 'sin' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(27) : error C2065: 'sin' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(28) : error C2275: 'SOCKADDR_IN' : illegal use of this type as an expression c:\program files\microsoft visual studio\vc98\include\winsock2.h(3576) : see declaration of 'SOCKADDR_IN' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(28) : error C2146: syntax error : missing ';' before identifier 'csin' c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(28) : error C2065: 'csin' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(32) : error C2224: left of '.sin_addr' must have struct/union type c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(33) : error C2224: left of '.sin_family' must have struct/union type c:\documents and settings\stvivotn\mes documents\serveur c\autre\serveur.c(34) : error C2224: left of '.sin_port' must have struct/union type Error executing cl.exe. serveur.obj - 18 error(s), 1 warning(s)
Tu sais quelle include il faut mettre ou comment corriger ce genre d'erreurs.. ?
salut kij =)
voilà le code d'une classe que j'avais faite en C++, mais il n'appelle que des fonctions C :
<edit>
arf je viens de voir qu'il y des CString dans le code... il faudra les remplacer par des char *.
</edit>
bon courage =)
voilà le code d'une classe que j'avais faite en C++, mais il n'appelle que des fonctions C :
#include <winsock2.h> #define SERVEUR_CODE 1000 #define SER_ERROR SERVEUR_CODE + 1 #define SER_PORT_INVALIDE SERVEUR_CODE + 2 #define SER_SOCK_ERROR SERVEUR_CODE + 3 #define SER_LISTEN_ERROR SERVEUR_CODE + 4 int CServeur::Executer() { if (n_port==0) //on teste le numéro de port return SER_PORT_INVALIDE; //déclaration des variables sockaddr_in client,serveur; //contiendra les infos : IP, famille et le port int sock_serveur, sockclient; //n° de sockets CString tempon; sock_serveur = socket(AF_INET,SOCK_STREAM,0); //création du socket if (sock_serveur==INVALID_SOCKET) { closesocket(sock_serveur); return SER_SOCK_ERROR; } serveur.sin_family=AF_INET; serveur.sin_addr.s_addr=inet_addr("127.0.0.1"); serveur.sin_port=htons(n_port); int ret=bind(sock_serveur,(const sockaddr*)&serveur,sizeof(serveur)); if (ret!=0) { closesocket(sock_serveur); return SER_SOCK_ERROR; } while (1) { ret=listen(sock_serveur,SOCK_STREAM); //attente de connexion if (ret!=0) { closesocket(sock_serveur); return SER_LISTEN_ERROR; } int addrlen=sizeof(client); int sock_client=accept(sock_serveur,(sockaddr*)&client, &addrlen); if (sock_client==INVALID_SOCKET) { closesocket(sock_serveur); return SER_SOCK_ERROR; } char buf[256]; ret=recv(sock_client,buf,sizeof(buf),0); if (ret==0) { closesocket(sock_serveur); return SER_ERROR; } if (ret<255) buf[ret+1]=0; else buf[ret]=0; tempon.Format("%s",buf); memcpy(buf,"Bienvenue sur Luffy Duck's Serveur !\n\n Veuillez vous identifier :",256); send(sock_client,buf,sizeof(buf),0); } return 0; }
<edit>
arf je viens de voir qu'il y des CString dans le code... il faudra les remplacer par des char *.
</edit>
bon courage =)
J'ai essayé ce que tu m'a filer Luffy, j'ai les erreurs suivantes :
Pourtant j'ai inclut winsock2.h, la librairie qu'il faut,... mais il ne me prend pas le sockaddr_in, tu sais pourquoi ?
Compiling... serveur.c c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(23) : error C2065: 'sockaddr_in' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(23) : error C2146: syntax error : missing ';' before identifier 'client' c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(23) : error C2065: 'client' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(23) : error C2065: 'serveur' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(24) : error C2143: syntax error : missing ';' before 'type' c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(25) : error C2143: syntax error : missing ';' before 'type' c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(27) : error C2065: 'sock_serveur' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(35) : error C2224: left of '.sin_family' must have struct/union type c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(36) : error C2224: left of '.sin_addr' must have struct/union type c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(37) : error C2224: left of '.siN_PORT' must have struct/union type c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(39) : error C2143: syntax error : missing ';' before 'type' c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(41) : error C2065: 'ret' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(60) : error C2065: 'sockaddr' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(60) : error C2059: syntax error : ')' c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(80) : error C2065: 'tampon' : undeclared identifier c:\documents and settings\stvivotn\mes documents\serveur c\luffy\serveur.c(80) : error C2224: left of '.Format' must have struct/union type Error executing cl.exe. serveur.obj - 16 error(s), 0 warning(s)
Pourtant j'ai inclut winsock2.h, la librairie qu'il faut,... mais il ne me prend pas le sockaddr_in, tu sais pourquoi ?
je sais pas ci cela va t'aider mais j'ai ça dans mes cours:
pour le client:
pour le client:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <unistd.h> #define PORT 20100 void main() { int sk,addrlen,nbr; struct sockaddr_in myaddr; char buffer[40]; struct hostent *host_addr; char retour[] = "Message retour du client"; //creation socket if((sk=socket(AF_INET,SOCK_STREAM,0))== -1) { perror("prog client erreur appel socket"); } host_addr=gethostbyname("localhost"); myaddr.sin_addr.s_addr=((struct in_addr *)(host_addr->h_addr))->s_addr; myaddr.sin_port=PORT; // myaddr.sin_port=htons(PORT); myaddr.sin_family=AF_INET; //demande de connexion addrlen=sizeof(struct sockaddr_in); if(connect(sk,(struct sockaddr*)&myaddr,addrlen)==-1) { perror("prog client erreur appel connect"); return; } //reception donnees if((nbr=read(sk,buffer,40))==-1) { perror("erreur appel read"); } printf("buffer recu: %s\n",buffer); //repond au serveur if((nbr=write(sk, retour,strlen(retour)+1))==-1) { perror("erreur appel write"); } if(close (sk)==-1) { perror("erreur appel close"); } }
pour le serveur:
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <unistd.h> #define PORT 20100 void main(void) { int ls,sk,nbr; struct sockaddr_in myaddr; struct sockaddr_in remaddr; char buffer[40]; unsigned int addrlen; char message[]="Message du serveur"; if (( ls = socket(AF_INET, SOCK_STREAM, 0)) == -1 ) { printf("erreur appel socket"); } memset (&myaddr, 0, sizeof(myaddr)); myaddr.sin_port = PORT; myaddr.sin_family = AF_INET; if ( bind(ls,(struct sockaddr*)&myaddr, sizeof(struct sockaddr_in)) == -1) { perror("erreur bind"); } if ( listen (ls,1) == -1 ) { printf("erreur listen"); } addrlen = sizeof(struct sockaddr_in); if (( sk = accept(ls,(struct sockaddr*) &remaddr,&addrlen)) == -1 ) { printf("erreur accept"); } if ( (nbr=write(sk,message,strlen(message)+1)) == -1 ) { printf("erreur write"); } if (( nbr = read(sk,buffer,40)) == -1 ) { printf("erreur read"); } printf("j ai recu :%s \n",buffer); close(sk); if(close (sk)==-1) { perror("erreur appel close"); } if(close (ls)==-1) { perror("erreur appel close"); } }
pour kij!
ton dernier programme "corrigé" compile bien, mais par contre il NE FAIT RIEN!
tu es sur que ça fonctionne pour toi??
ton dernier programme "corrigé" compile bien, mais par contre il NE FAIT RIEN!
tu es sur que ça fonctionne pour toi??
oui, je viens de m'en apercevoir... lol (fais ch...)
Il met le message suivant :
J'ai modifié encore un peu le code, si tu vois d'ou ca peut venir :
C'est à ce niveau ci :
++
Il met le message suivant :
erreur creation socket serveur !
J'ai modifié encore un peu le code, si tu vois d'ou ca peut venir :
#include <stdio.h> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") #define N_PORT 5000 #define SERVEUR_CODE 1000 #define SER_ERROR SERVEUR_CODE + 1 #define SER_PORT_INVALIDE SERVEUR_CODE + 2 #define SER_SOCK_ERROR SERVEUR_CODE + 3 #define SER_LISTEN_ERROR SERVEUR_CODE + 4 int main ( int argc, char *argv[] ){ struct sockaddr_in client,serveur; //contiendra les infos : IP, famille et le port int sock_serveur, ret; //n° de sockets if (N_PORT==0) //on teste le numéro de port return SER_PORT_INVALIDE; //création de la socket serveur : if ( (sock_serveur = socket(AF_INET,SOCK_STREAM,0)) == -1 ) { printf("Probleme a la creation de la socket serveur !\n"); exit(0); } serveur.sin_family=AF_INET; serveur.sin_addr.s_addr=inet_addr("127.0.0.1"); serveur.sin_port=htons(N_PORT); if ( bind(sock_serveur,(struct sockaddr *)&serveur,sizeof(serveur)) != 0) { closesocket(sock_serveur); return SER_SOCK_ERROR; } // Mise a l ecoute : if ( listen(sock_serveur,SOCK_STREAM) != 0) { printf("Impossible d ecouter sur le port designe !\n"); closesocket(sock_serveur); exit(SER_LISTEN_ERROR); } while (1) { char buf[256]; int addrlen=sizeof(client); int sock_client = INVALID_SOCKET; sock_client=accept(sock_serveur,(struct sockaddr*)&client, &addrlen); if (sock_client==INVALID_SOCKET) { closesocket(sock_serveur); return SER_SOCK_ERROR; } ret=recv(sock_client,buf,sizeof(buf),0); if (ret==0) { closesocket(sock_serveur); printf("Erreur %d\n",SER_ERROR); return SER_ERROR; } if (ret<255) buf[ret+1]='\0'; else buf[ret]='\0'; //tampon.Format("%s",buf); memcpy(buf,"Bienvenue sur Luffy Duck's Serveur !\n\n Veuillez vous identifier :",256); send(sock_client,buf,sizeof(buf),0); } return 0; }
C'est à ce niveau ci :
if ( (sock_serveur = socket(AF_INET,SOCK_STREAM,0)) == -1 ) { printf("Probleme a la creation de la socket serveur !\n"); exit(0); }
++
salut kij :-)
sous windows, il faut parfois rajouter ce bout de code (me demande pas pourquoi, mais des fois ça marche sans !!! c'est windows quoi !) :
++
sous windows, il faut parfois rajouter ce bout de code (me demande pas pourquoi, mais des fois ça marche sans !!! c'est windows quoi !) :
WSADATA initialisation_win32; ret=WSAStartup(MAKEWORD(2,2),&initialisation_win32); if (ret!=0) printf("\nDesole, je ne peux pas initialiser Winsock du a l'erreur : %d %d",ret,WSAGetLastError()); else printf("\nWSAStartup : OK");
++
PS : trouvé sur la msdn :
About Servers and Clients
There are two distinct types of socket network applications: Server and Client. Servers and Clients have different behaviors; therefore, the process of creating them is different. What follows is the general model for creating a streaming TCP/IP Server and Client.
Server
1. Initialize WSA.
2. Create a socket.
3. Bind the socket.
4. Listen on the socket.
5. Accept a connection.
6. Send and receive data.
7. Disconnect.
Client
1. Initialize WSA.
2. Create a socket.
3. Connect to the server.
4. Send and receive data.
5. Disconnect.
donc si MS le dit, il faut initialiser WSA !!!
About Servers and Clients
There are two distinct types of socket network applications: Server and Client. Servers and Clients have different behaviors; therefore, the process of creating them is different. What follows is the general model for creating a streaming TCP/IP Server and Client.
Server
1. Initialize WSA.
2. Create a socket.
3. Bind the socket.
4. Listen on the socket.
5. Accept a connection.
6. Send and receive data.
7. Disconnect.
Client
1. Initialize WSA.
2. Create a socket.
3. Connect to the server.
4. Send and receive data.
5. Disconnect.
donc si MS le dit, il faut initialiser WSA !!!
Ah bah oui.. je l'ai mis dans les autre prog mais pas dans celui la !!
Mais quel boulet je suis put#@!!
En tout cas merci bien gars !
T'aurais pas la même chose pour client tant qu'à faire des fois ?
:D
(c'est bon je vais le faire :), faut bien que je fasse qqchose quand même !)
ps : (j'vais pouvoir me bourrer la geule l'esprit tranquille ce soir !)
++
Mais quel boulet je suis put#@!!
En tout cas merci bien gars !
T'aurais pas la même chose pour client tant qu'à faire des fois ?
:D
(c'est bon je vais le faire :), faut bien que je fasse qqchose quand même !)
ps : (j'vais pouvoir me bourrer la geule l'esprit tranquille ce soir !)
++