Programmation

mardi 16 janvier 2024, 13:12  #1
Programmation - TCP chaîne encodée (C++)
PO_po
  • 3 posts

Je suis en train d’essayer de résoudre le 2nd exo de programmation en c++.

Mon problème est que j’arrive à décoder le string, (en partant du principe que c’est du base 64 - https://www.dcode.fr/identification-chiffrement#q3).
Cependant, une fois décodé, j’envoi ma réponse et j’attend une réponse du serveur qui ne vient jamais, voir :
##OUTPUT START##
Connect port 52023

Data retreived

==================
ENCRYPTED STRING
==================
Tell me the clear content of this string !

my string is ’WW1vcmlSNVo4bkUzQU1KTFdrWTlGRGdDOWR6aw==’. What is your answer ?
string to decode : WW1vcmlSNVo4bkUzQU1KTFdrWTlGRGdDOWR6aw==
processed string : YmoriR5Z8nE3AMJLWkY9FDgC9dzk
string sent !
sent : YmoriR5Z8nE3AMJLWkY9FDgC9dzk || YmoriR5Z8nE3AMJLWkY9FDgC9dzk
^C
##OUTPUT END##

j’envoi pourtant bien une réponse sous forme de string et le décodage du string reçu semble correct si l’on compare mes réponses avec celles d’un site comme https://www.dcode.fr/code-base-64.
partie relevante de mon code :
#CODE#
std::string sendback = process(buffer) ;
std::cout << "processed string : " << sendback << std::endl ;

//send
const char* message = sendback.c_str() ;
if (send(client, message, strlen(message),0) == -1)
std::cout << "couldnt send processed data\n" ;
close(client) ;
return 1 ;
 ;
std::cout << "string sent !\n" << "sent : " << message << " || " << sendback << std::endl ;

//response
memset(buffer, 0, sizeof(buffer)) ;
if (recv(client, buffer, sizeof(buffer), 0)==-1)
std::cout << "coud not get response\n" ;
close(client) ;
return 1 ;

std::cout << "response : \n" << buffer ;
#CODE#

mardi 23 janvier 2024, 15:27  #2
Programmation - TCP chaîne encodée (C++)
PO_po
  • 3 posts

Problème réglé, l’erreur était que ma fonction de décodage avait besoin d’une petite amélioration et surtout que j’ai dû rajouter un "\n" à la fin du ma réponse pour que le serveur l’accepte.

mercredi 28 février 2024, 23:12  #3
Programmation - TCP chaîne encodée (C++)
Marseille
  • 2 posts

Bonjour,
je pense rencontrer un peu le même problème que toi : je décode bien la chaîne comme il se doit, j’ai vérifié avec un convertisseur, et au niveau de l’envoie, celui-ci s’execute. En revanche, le serveur ne fait que me dire que ma réponse n’est pas correcte. Aurait-tu des pistes sur les petites améliorations que tu a dû faire sur ta fonction de décodage ?

mercredi 28 février 2024, 23:27  #4
Programmation - TCP chaîne encodée (C++)
Marseille
  • 2 posts

okay, i found, it doesn’t accept string in c++ only char*