sockets - C sendfile and then other text -


this snippet of client code:

while(((uint32_t)total_bytes_read != fsize) && ((nread = read(sockd, filebuffer, sizeof(filebuffer))) > 0)){ if(write(fd, filebuffer, nread) < 0){ perror("write"); close(sockd); exit(1); } total_bytes_read += nread; } memset(buffer, 0, sizeof(buffer)); if(recv(sockd, buffer, sizeof(buffer), 0) < 0){ perror("errore ricezione 226"); close(sockd); exit(1); } printf("%s", buffer); memset(buffer, 0, sizeof(buffer)); if(recv(sockd, buffer, sizeof(buffer), 0) < 0){ perror("errore ricezione 221"); close(sockd); exit(1); } printf("%s", buffer); close(fd); 

where first receives file , listen 2 server's messages.
here snippet of server:

offset = 0; rc = sendfile(newsockd, fd, &offset, filestat.st_size); if(rc == -1) { fprintf(stderr, "errore durante l'invio di: '%s'\n", strerror(errno)); onexit(newsockd, sockd, fd, 3); } if((uint32_t)rc != fsize) { fprintf(stderr, "trasferimento incompleto: %d di %d bytes inviati\n", rc, (int)filestat.st_size); onexit(newsockd, sockd, fd, 3); } memset(buffer, 0, sizeof(buffer)); strcpy(buffer, "226 file trasferito con successo\n"); if(send(newsockd, buffer, strlen(buffer), 0) < 0){ perror("errore durante l'invio 226"); onexit(newsockd, sockd, 0, 2); } memset(buffer, 0, sizeof(buffer)); strcpy(buffer, "221 goodbye\n"); if(send(newsockd, buffer, strlen(buffer), 0) < 0){ perror("errore durante l'invio 221"); onexit(newsockd, sockd, 0, 2); } 

the problem file have been retrived contains 2 messages sent server o.o
why happens? i've said client "recv until file size"...i don't understand why file contains 2 messages -.-''

while(((uint32_t)total_bytes_read != fsize) && ((nread = read(sockd, filebuffer, sizeof(filebuffer))) > 0))

if happen read 1 more byte fsize statement still true , won't break out of loop.


Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -