questo il prototipo di una funzione membro della classe Socket:
ssize_t Socket::recv(std::string & s);
la funzione ritorna la variabile bytes_recv dichiarata come ssize_t, enel corpo della funzione abbiamo:
bytes_recv = ::recv(sockfd, buffer, sizeof(buffer) - 1, 0);
Il dubbio sorge spontaneo: che tipo di dato è ssize_t?
E se non sbaglio, la funzione recv ritorna un int, per l'appunto il numero di byte ricevuti...
E inoltre, piccolo OT: "std::string & s" equivale a "std::string &s" (e dunque anche "char * buf" = "char *buf").
![]()
![]()