begin process at 2012 05 29 10:01:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Réseau & Internet

 > 

Invalid orincomplete multibyte or wide character


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Invalid orincomplete multibyte or wide character

mercredi 29 juillet 2009 à 09:42:38 | Invalid orincomplete multibyte or wide character

chrisotphe7502

Bonjour,

le programme que je suis en train de faire doit permettre de se connecter à une socket existante, d'envoyer une donnée et en recevoir la réponse. Voici le code :

Code C/C++ :
int main (int argc, char ** argv)

{
int mysock;
struct sockaddr_in myaddr ;
char * erreur = "0";
char * recv_data;
char * send_data = argv[2];
int port = (int)(argv[1]);
if(argv[1] == "help" || argc < 3)
{
help();
}
else
{
myaddr.sin_family = AF_INET;
myaddr.sin_addr.s_addr = INADDR_ANY;
myaddr.sin_port = htons ( port );
myaddr.sin_zero[8];

if ((mysock = socket(AF_INET,SOCK_STREAM,0)) != -1)
{
int reUseAddress = 1 ;
if (setsockopt(mysock,SOL_SOCKET,SO_REUSEADDR,(char *) &reUseAddress,sizeof(reUseAddress)) >= 0)
{
if((bind (mysock,( struct sockaddr * ) &myaddr,sizeof ( myaddr ))) == 0 )
{
if((connect (mysock, ( sockaddr * ) &myaddr, sizeof ( myaddr ))) == 0)
{
int nonBlockingIO = 0;
if (ioctl(mysock,FIONBIO,&nonBlockingIO) == 0)
{
//send ( mysock, send_data, sizeof(send_data), 0 );
write ( mysock, send_data, sizeof(send_data));
//recv ( mysock, recv_data, sizeof(recv_data), 0 );
read( mysock, recv_data, sizeof(recv_data));
if(errno != 0)
{
erreur = strerror(errno);
}
}
else
{
erreur = strerror(errno);
}
}
else
{
erreur = strerror(errno);
}
}
else
{
erreur = strerror(errno);
}
}
else
{
erreur = strerror(errno);
}
}
else
{
erreur = strerror(errno);
}

if(close(mysock) == -1 && erreur == 0)
{
erreur = strerror(errno);
}
if(erreur != 0)
{
printf("\nErreur : %s\n",erreur);
}
else
{
printf("Données envoyées : %s\n",send_data);
printf("Données reçues : %c\n",recv_data);
}
}
}


La connexion se passe bien mais lorsque je fais le write ( le send donne la même chose ), errno me renvoie "Invalid orincomplete multibyte or wide character".

Quelqu'un peut pourrait il m'aider ?

Merci d'avance

mercredi 29 juillet 2009 à 10:33:49 | Re : Invalid orincomplete multibyte or wide character

4fiji

Ce probleme doit avoir un lien avec l'Unicode. Es-ce que vous compilez en Unicode ?

mercredi 29 juillet 2009 à 10:38:02 | Re : Invalid orincomplete multibyte or wide character

chrisotphe7502

Oué, j'ai oublié de préciser que le code est compiler sur un pc linux avec unicode utf-8.
Le fichier binaire est ensuite copié sur un linux embarqué.

mercredi 29 juillet 2009 à 10:46:30 | Re : Invalid orincomplete multibyte or wide character

chrisotphe7502

Je dois le changer en quoi et comment pour que ça marche ?

mercredi 29 juillet 2009 à 15:23:25 | Re : Invalid orincomplete multibyte or wide character

4fiji

Je pense qu'il faut convertir la chaine unicode en série d'octets pour l'envoyer octet par octet au lieu de l'envoyer caractère unicode par caractère unicode vu que les fonctions C attendent 1 octet par caractère...


mercredi 29 juillet 2009 à 16:32:25 | Re : Invalid orincomplete multibyte or wide character

chrisotphe7502

Désolé, je me suis remis au c il y a peu de temps donc si tu pouvais me mettre un exemple ça serais sympa



Cette discussion est classée dans : send, erreur, data, errno, mysock


Répondre à ce message

Sujets en rapport avec ce message

problème de redéfinition a la compilation [ par bouba ] Arg, j'ai un blem de redéfinition a la compilation de mon application.Voici le message d'erreur que me donne gcc 3.1.main.o(.data+0x0): définitions mu Erreur send() [ par DJeS ] avec winsock2 sous devc++, j'obtiens une erreur lors de l'envoi d'un msg avec ma socket en mode connecté stream.en affichant le SOCKET_ERROR avec cout PostgreSQL - SPI - C++ [ par dacor ] Bonjour, je voudrais écrire des procédures stockées en c++ mais je rencontre des pb dans l'inclusion de : executor/executor.h et de executor/spi.h ERROR shellexecut [ par deck_bsd ] Bonjour, Voici mon problèle, je voudrai que mon programme affiche un message d'erreur si il n'arrive pas à éxécuter un fichier pour tel ou tel raison Erreur avec strcpy [ par ROnE91 ] R-OnEBonjour, je n'arrive pas a faire fonctionner cette fonction. J'utilise vc++6, le compilateur ne m'indique pas d'erreur mais il se pb readfile sous Win2k [ par VolaiL ] Voilà, j'ai un programme qui tourne impec sou Win9x, et la, je viens de la passer sous win2k, et ce con me "saute" mon readfile :/ Disons qu'il fais k GROS GROS ENNUIS [ par xytron ] Bonjour les amis (ies)!Voila j'étais en train de modifier mon diagramme de classe donc les relation entre ces classes et en recompilant j'ai une erreu help !!! commande send key [ par morgandetoi06 ] voila j ai vu la commande sendkey en vb mais j aimerait savoir si elle existe en c++ ou bien si il y a une equivalence.si quelqu un peut m expliquer c URGENT Lecture du port paralelle [ par pirate75000 ] J'ai essayer je pense la plupart des dll pour lire les broche 2 a 9 du port paralelle, Data 1 a data 8Elles fonctionnaient bien sur mon ancien ordinat probleme irregulier avec FileWrite [ par poseidon2 ] Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:J'ai logué le FileWrite et le CréateF


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales