Je n'arrive toujours pas à lire les messages de réponse entrants provenant d'un élément matériel avec lequel mon programme communique. J'utilise GSocketClient et je suis capable de me connecter et d'envoyer des messages avec succès à l'aide de g_output_stream_write(). Je veux ensuite lire la réponse renvoyée par l'appareil, mais je n'ai aucun moyen de savoir combien d'octets la réponse sera pour utiliser g_input_stream_read(). J'ai aussi essayé d'utiliser g_input_stream_read_all(), mais cela semble bloquer l'application et ne jamais revenir. Je ne sais pas comment g_input_stream_read_all() détermine qu'il a atteint la fin d'un flux, mais je suppose que le problème est quelque part?En utilisant GSocketClient, comment lire les données entrantes sans connaître le nombre d'octets entrants?
Je sais qu'il y a des données entrantes car je peux utiliser g_input_stream_read() avec une taille d'octet inventé comme 5 et je vois alors les 5 premiers octets entrants, mais la taille de la réponse sera toujours différente. Donc, mes questions sont, est-il un moyen de déterminer combien de données sont en attente de lecture afin que je puisse le brancher dans g_input_stream_read() comme une variable pour la taille à lire? Et si non, quelle est l'utilisation correcte de g_input_stream_read_all() pour ne pas bloquer comme je le vois faire?
Hmm ... Je vais essayer ce soir. – DrRocket