Bonjour tous le monde !

alors voila, je suis en train de developper une application c/gtk en reseau et j'ai un petit mystere que je peine a resoudre au niveau de l'appli client.
en fait au moment ou je fais ma connection si j'envoie une donnee tout de suite apres a mon server je n'ai aucun soucis, que ce soit du cote de send ou de recv, par contre si j'attend d'avoir construit ma fenetre gtk ... la j'ai mon appli qui plante, j'ai donc essaye d'enlever la composante gtk afin de voir se qu'il se passerai et la, tout se passe bien. j'aurai donc voulu savoir si l'utilisation du GTK avait une quelconque influence sur les sockets ?
je vais vous montrer se que j'ai code ca sera plus simple
ps : la fenetre GTK creer avec ce bout de code est une fenetre creer a partir de la fenetre mere.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
 
void process_data()
{
/*
si je place un send ici avant de creer une nouvelle fenetre ou je dois remplir des champs tout va tres bien.
*/
    report = malloc(sizeof(t_report));
    report->pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(report->pWindow), "G.B");
    gtk_window_set_default_size(GTK_WINDOW(report->pWindow), 600, 650);
    add_object();
    g_signal_connect(G_OBJECT(report->pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect(G_OBJECT(report->pButton), "clicked", G_CALLBACK(get_info_box), NULL);
    gtk_widget_show_all(report->pWindow);
    gtk_main();
}
 
/*
je vous epargne les fonctions du genre ajout de boutons ...
une fois ma fenetre remplie avec les champ ... je recupere les donnees.
*/
 
void get_info_box()
{
/*
 par contre si je tente d'envoyer quelque chose a cette endroit ci et bien cela ne fonctionne pas ... sachant qu'entre la premiere fonction et celle ci, je n'ai fait qu'ajouter des boutons ou ce genre de chose et ce sans utiliser la structure utilise pour le reseau.
*/
    report->ftmp[0] = gtk_entry_get_text(GTK_ENTRY(report->pEntry_teach));
    report->ftmp[1] = gtk_entry_get_text(GTK_ENTRY(report->pEntry_mail));
    report->ftmp[2] = gtk_entry_get_text(GTK_ENTRY(report->pEntry_room));
    report->ftmp[3] = get_info_list(report->pRadio1);
    report->ftmp[4] = get_info_list(report->pRadio3);
    report->ftmp[5] = get_text_from_text_view(report->text_view);
    printf("%s\n%s\n%s\n%s\n%s\n%s\n", report->ftmp[0], report->ftmp[1], report->ftmp[2], report->ftmp[3], report->ftmp[4], report->ftmp[5]);
    send_report(report);
}
 
/*
voila le code que j'utilise pour envoyer et recevoir, enfin c'est juste du test ;)
*/
    char transfer[BUFF] = "bonjour je m'apelle guillaume";
    char r[BUFF];
    send(client->sock, transfer, BUFF, 0);
    printf("message transmit\n");
    recv(client->sock, r, BUFF, 0);
    printf("message recu %s\n", r);
 
du basique qui est fonctionnel a tout les coups ;)
si l'un d'entre vous aurai une petite idee ...

edit: j'ai refait quelques test, je peux faire l'envoi ou je veux dans le main, cela ne fonctionne pas a partir du moment ou je le fait au debut de la fonction get_info_box, se qui me parait bizare puisque la seul chose qui separe la premiere fonction de cette derniere est un callback ...

edit again : apres avoir continue a tester, j'ai pu isoler le fait qu'en utilisant ma fonction callback get_info_box cela ne fonctionne pas mais si j'utilise ma fonction directement a la place du callback l'envoi se fait bien, une idee ? la je commence a serieusement secher pourtant j'ai pas l'impression de mal utiliser cette fonction callback..

edit : probleme resolu, simple souci avec une fonction du cote server.