bonjour,
j'utilise un giochannel dans une application chat, dans le client écrit en Gtk, ceci afin d'éviter l'utilisation d'un thread qui me causait des problèmes.
voici ce que j'ai fait :
app -> channel = g_io_channel_unix_new(sock) ;
g_io_add_watch (app -> channel, G_IO_IN, (GIOFunc) Lire_socket,data) ;
Dans lire_socket :
fd = g_io_channel_unix_get_fd (app -> channel) ;
nb_lu = read (fd, buf,1024) ;
Ensuite j'écris le contenu dans un gtkTextview.
ça fonctionne mais j'ai eu des cas d'erreurs du type :
Gtk-CRITICAL **: gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed
Alors je ne sais pas si la cause vient de l'utilisation du read, car j'ai vu qu'il y avait des fonction spéciales pour la lecture comme :
g_io_channel_read ()
mais j'ai rencontré des problèmes lors de son utilisation.
donc je voulais savoir si ma méthode est correcte et d'où pourrait venir cette erreur.
Merci.
Partager