Voila j'essaye d'utiliser les socket, j'arrive � envoyer une chaine de charactere quelconque et mon server l'affiche correctement. Le probl�me c'est que le server ne semble pas vouloir accepter un deuxieme message provennant de mon client.
La fonction send() ne me renvoie pas -1 donc � priori de son cot� pas d'erreur il doit donc exister une subtili� qui m'echappe.
Voila les sources du client et du server, bon je commence tout juste � bosser dessus donc c'est super bordelique et brouillon.
le server :
le client#include <cstdlib>
#include <iostream>
#include <winsock2.h>
using namespace std;
int main(int argc, char *argv[])
{
WSADATA WSAData;//les memes ..
int stop=1;
char buffer[50];
for(int i=0;i<50;i++)buffer[i] = '\0';
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKET csock;//atention j'en ai fait 2 !!
SOCKADDR_IN sin;
SOCKADDR_IN csin;// tjr 2
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(240);// bon on se met sur le bon port (on avait pris 240 )
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
while(1)
{
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
stop = 1;
listen(sock, 0);
while(stop)
{
int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{stop = 0;
cout << "Connection" << endl;
}
}
recv(csock, buffer, 50, 0);
printf("%s\n",buffer);
}
system("PAUSE");
return EXIT_SUCCESS;
}
Voila merci d'avance#include <cstdlib>
#include <iostream>
#include <winsock2.h>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
int stop=1;
string message;
string message2;
int i = 0;
int taille;
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
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(240);// j'ai choisi le port 240
while(1)
{
i = 0;
while(stop){
if((connect(sock, (SOCKADDR *)&sin, sizeof(sin)))!= INVALID_SOCKET)
{
stop=0;
cout << "Connect" << endl;
}
else if( i == 0)
{
cout << "Pas de serveur" << endl;
i = 1;
}
}
cout << "Entrer votre phrase" << endl;
message2.erase();
message.erase();
do{
cin >> message;
if(message != ">") message2 = message2 +" "+ message;
i++;
}while(message != ">");
cout << message2 << message2.size() << endl;
taille = message2.size();
if(send(sock, message2.c_str(), taille, 0) == -1) printf("Erreur\n");
}
system("PAUSE");
return EXIT_SUCCESS;
}
edit : je cherche pas specialement que l'on me passe un code qui marche mais juste qu'on m'explique comment en faire un moi m�me ^^
Partager