Write, Socket et erreurs "EILSEQ"
Bonjour tout le monde,
Je suis actuellement en train d'écrire un petit soft qui doit se connecter a un petit serveur pour faire des petites choses ^^
J'ai écris ma structure à envoyer, la voici:
Code:
1 2 3 4 5 6 7 8 9
| typedef struct
{
char begin_trame;
char id_mess[3];
unsigned char stx; //0x02
Eligi_Header header;
Eligi_Parameters_68 parameters;
unsigned char etx; //0x03
} __attribute__ ((packed)) Eligi_68; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| typedef struct
{
char tm_smtp[14];
char v_hdr[2];
char typ_com;
char typ_ms;
char xxx[8];
char yyy[8];
char zzz[8];
char n_trans[8];
char id_mess[4];
char n_use[8]; // non utilisé
char lg_var[5];
} __attribute ((packed)) Eligi_Header; |
Code:
1 2 3 4 5 6 7
| typedef struct
{
char ind_id;
char id_a[8];
char id_m[14];
char id_src;
} __attribute ((packed)) Eligi_Parameters_68; |
Malheureusement, lorsque j'essayer d'envoyer à en TCP au serveur distant ma jolie petite structure avec ses jolies petites données grâce à la ligne:
Code:
write(soc, sc, sizeof(Eligi_68))
J'ai en retour une jolie petite érreure 84 correspondant à EILSEQ.
Sous ce terme barbare ce cache la chose suivante:
Citation:
[EILSEQ]
Illegal byte sequence A wide-character code has been detected that does not correspond to a valid character, or a byte sequence does not form a valid wide-character code.
Quelqu'un aurai t il déjà rencontré ce genre de problème ? Ou tout bètement aura une astuce pour me mettre sur la voix de la résolution ?
Zigo ^^
Re: Write, Socket et erreurs "EILSEQ"
Citation:
Envoyé par zigoo
Je suis actuellement en train d'écrire un petit soft qui doit se connecter a un petit serveur pour faire des petites choses ^^
J'ai écris ma structure à envoyer, la voici:
<...>
Citation:
[EILSEQ]
Illegal byte sequence A wide-character code has been detected that does not correspond to a valid character, or a byte sequence does not form a valid wide-character code.
Est-ce que le mot 'portabilité' évoque quelque chose pour toi ? Vu que tu utilises des astuces non portables, j'ai comme un doute...
Pour transférer des données de façon fiable et portable, il faut se conformer strictement au format 'réseau' tel qu'il doit être spécifié par un doculent indépendant de tout langage de réalisation et émettre un tableau de bytes préalablement remplis un par un selon les regles de l'art...
Une structure ne convient pas.
Re: Write, Socket et erreurs "EILSEQ"
Citation:
Envoyé par Emmanuel Delahaye
Citation:
Envoyé par zigoo
Je suis actuellement en train d'écrire un petit soft qui doit se connecter a un petit serveur pour faire des petites choses ^^
J'ai écris ma structure à envoyer, la voici:
<...>
Citation:
[EILSEQ]
Illegal byte sequence A wide-character code has been detected that does not correspond to a valid character, or a byte sequence does not form a valid wide-character code.
Est-ce que le mot 'portabilité' évoque quelque chose pour toi ? Vu que tu utilises des astuces non portables, j'ai comme un doute...
Pour transférer des données de façon fiable et portable, il faut se conformer strictement au format 'réseau' tel qu'il doit être spécifié par un doculent indépendant de tout langage de réalisation et émettre un tableau de bytes préalablement remplis un par un selon les regles de l'art...
Une structure ne convient pas.
Utilisez une structure n'est peut être pas portable, ni même la règle dans ce genre de situation, mais j'utilise cela depuis le début et cela fonctionne sans problème.
Le faites est que ici j'ai du passer à coté de quelquechose qui me mène à une erreur.