C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

impossible de lire 0 depuis le réseau

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Stanislas
Guest





PostPosted: Mon Mar 28, 2005 10:09 pm    Post subject: impossible de lire 0 depuis le réseau Reply with quote



j'ai un client qui envoie un byte = 0.
lorsque mon serveur reçois ça il s'arrête tout simplement

pourriez vous m'aider : voici le code

:--------------main function ----------------------:
Quote:

ofstream * writepersist = new ofstream
((userpath+newid).c_str(),ios::out|ios::app|ios::binary);

int size = 0;
char c;
while((int)(c=getchar(s))!=0)
{
writepersist->put(c);
size++;
}

:----------------getchar implementation--------------:


char netaction::getchar(int s)
{
char c;
int error=0;
int err;
while(1)
{
getsockopt(s,SOL_SOCKET,SO_ERROR,(char*)&err,(unsigned
int*)sizeof(err));
if(read(s,&c,1)==1) break;
if(errno!=0) {error = 1; break; }
}
if(error==1)
{
shutdown(s,2);
close(s);
exit(0);
}
return c;
}


:--------------------------:

Back to top
kanze@gabi-soft.fr
Guest





PostPosted: Tue Mar 29, 2005 6:49 am    Post subject: Re: impossible de lire 0 depuis le réseau Reply with quote



Stanislas wrote:
Quote:
j'ai un client qui envoie un byte = 0.
lorsque mon serveur reçois ça il s'arrête tout simplement

pourriez vous m'aider : voici le code

:--------------main function ----------------------:

int size = 0;
char c;
while((int)(c=getchar(s))!=0)
^^^^^^^^^^^^^^^^^^^^^^


C'est normal, non ?

Le getchar du système renvoie un int, afin justement d'avoir une
valeur hors bande pour signaler la fin. Je ne sais pas ce que tu
essaies de faire, mais ça pourrait être une solution possible.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Back to top
Stanislas
Guest





PostPosted: Tue Mar 29, 2005 11:22 am    Post subject: Re: impossible de lire 0 depuis le réseau Reply with quote



Il ne faut pas tenir compte de la vérif de la valeur 0 car c'est
lorsque justement je n'utilise pas le byte 0
Bref

j'arrive pas à recevoir et écrire dans un fichier 0 à travers le
réseau

any help ?

merci

Stanislas


[email]polustanislas (AT) hotmail (DOT) com[/email] (Stanislas) wrote in message news:<744a1eb5.0503281409.51da1ee1 (AT) posting (DOT) google.com>...
Quote:
j'ai un client qui envoie un byte = 0.
lorsque mon serveur reçois ça il s'arrête tout simplement

pourriez vous m'aider : voici le code

:--------------main function ----------------------:

ofstream * writepersist = new ofstream
((userpath+newid).c_str(),ios::out|ios::app|ios::binary);

int size = 0;
char c;
while((int)(c=getchar(s))!=0)
{
writepersist->put(c);
size++;
}

:----------------getchar implementation--------------:


char netaction::getchar(int s)
{
char c;
int error=0;
int err;
while(1)
{
getsockopt(s,SOL_SOCKET,SO_ERROR,(char*)&err,(unsigned
int*)sizeof(err));
if(read(s,&c,1)==1) break;
if(errno!=0) {error = 1; break; }
}
if(error==1)
{
shutdown(s,2);
close(s);
exit(0);
}
return c;
}


:--------------------------:

Back to top
Samuel Krempp
Guest





PostPosted: Tue Mar 29, 2005 11:49 am    Post subject: Re: impossible de lire 0 depuis le réseau Reply with quote

le Tuesday 29 March 2005 13:22, [email]polustanislas (AT) hotmail (DOT) com[/email] écrivit :

Quote:
Il ne faut pas tenir compte de la vérif de la valeur 0 car c'est
lorsque justement je n'utilise pas le byte 0

euh, quoi ? faut pas tenir compte du code que tu as posté ??
dans ce cas je vois mal où on pourrait voir ce qui va pas..

Quote:
while((int)(c=getchar(s))!=0)

faut-il comprendre que cette ligne n'est *pas* à prendre en compte, seule ta
fonction getchar l'est ? hmm pourquoi tu l'as postée alors ?
Dans ce cas ça ne dépend pas du code C++ présent mais de l'implémentation
qu'il y a derrière l'entier 'fd'. Vu qu'on en connait rien (à part que
c'est censé être un socket réseau d'après ce que tu nous a dit), je vois
mal ce que tu espères obtenir des lecteurs de ton article..

""""
-j'ai un code, qui utilise un certain socket réseau, le reste n'est que des
détails. Quand la valeur 0 est passée il s'arrête. Que se passe-t-il donc ?
-hmm, la seule chose qu'on peut supposer à partir de ces informations est
que ce socket s'arrête quand la valeur 0 est passée.
-ah d'accord. merci bcp, au revoir !
"""

Bref, à mon avis tu n'as pas assez mûrement réfléchi avant de poster.
Il aurait été plus utile d'envoyer une question plus précisément sur le
socket réseau que tu utilises, et ce dans le forum le plus adapté possible.

--
Sam

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.