Bonjour, je suis en train de développer un client serveur sous C++ et je rencontre des difficultes lors de la mise en oeuvre du serveur, je m'explique :
J'ai développé un client et un serveur, je les ai lancé en local (sur une même machaine, avec @IP pour le client = 127.0.0.1), aucun problème !
Par contre maintenant je viens de mettre l'application serveur sur une autre machine @IP=192.168.0.1, j'ai modifié @IP qu'il fallait dans le client, mais maintenant j'ai des erreurs dans la transmission serveur->client. (Il faut savoir que j'envoie au total plus 100 000 octets)
voici le code de l'envoi serveur :
void sendPacket(char* toSend, int len) {
int data_env=0;
int trans_data=0;
while (data_env<len) {
trans_data=send(socket,toSend+data_env,T_SEND_DATA,0);
data_env+=trans_data;
}
printf("donnéees envoyées : %i\n",data_env);
}
voici le code de reception client :
char* Client::recvPacket() {
char* recept = (char*) malloc (T_BUFF);
int res;
int total=0;
int i=0;
bool sortir=false;
while (!sortir && ((res=recv(fdSock,instruction,T_BUFF,0))<=T_BUFF) && (res>0)) {
printf("recep!!!!\n");
if (i>0) {
char* temp = (char*) malloc (i+T_BUFF);
strcpy(temp,recept);
recept=temp;
}
total+=res;
strcpy(recept+i,instruction);
i=i+T_BUFF;
if (strstr(instruction,"%")!=NULL) {
printf("ON SORT !!\n");
sortir=true;
}
}
if (res<-1) perror("Erreur réception instruction\n");
//printf("commande : %s\n",recept);
return recept;
}
Et si vous pouviez me donner quelques conseils aussi ;
if (strstr(instruction,"%")!=NULL) {
printf("ON SORT !!\n");
sortir=true;
}
Je trouve cela vraiment pas top ! (toSend contient '%', je le rajoute à chaque fois que je veux envoyez un char*)
Merci d'avance !