|
|
|
|
Bonjour,
j'ai creer un client serveur.
Mon client envoyer des donnes du type :
"V 0000000000000000000" a la socket serveur et si je sniff je peu voir que la socket serveur la bien recu,
cependant dans mon code
si je fait un
read(fd,buffer,buffersize);
il lie que la premiere caractere en locurence le "V"
mai si sur le socket serveur il est envoyer des donnes sans espace il lie tou.
Comment remedie a ce probleme
merci davance
C* -----> Either exist as you are or be as you look <---- C*Configuration: Linux
Firefox 1.0.7
No la taille du buffer elle vaut 1000
|
En faite voila mon code :
|
Heu readn(), c'est pas une fonction qui existe déjà ? Un truc pour lire plusieurs fois à la suite ?
int read_sock (int sockhandle, unsigned char *buf, int taille)
{
int byte_lu = -1;
unsigned char *ptbuf =buf;
int length = taille;
int i = 0;
do {
byte_lu = read (sockhandle, ptbuf,length);
if (byte_lu > 0)
{
ptbuf = ptbuf+byte_lu;
length = length-byte_lu;
}
i++;
if(i > 10000)
return -1;
} while (length > 0);
return (length);
}Ca devrait marcher comme ça
Qui n'a rien n'a rien (Proverbe Norvillois) |