Si eso es una función... ¿donde está el return?
Si te refieres al código en su conjunto es una parte de una función, y hay funciones que no devuelven nada, void.
Si te refieres al recv(), su valor de retorno queda almacenado en la variable res, que ahora que lo dices se me ha olvidado quitarla, pues ya no la uso, hago comprobación de tamaño de la respuesta obtenida, en vez de igualar a SOCKET_ERROR (-1), así hago una mejor comprobación de errores y si no obtiene respuesta cuenta como error.
Aparte que esto no tiene que ver con el tema en cuestión, seguiré buscando hacerla de un timeout para recv(), seguro se puede.
Saludos.
Tacata && solvented:
string respuesta;
char *bloque = new char[3000]();
timeval tiempo_espera;
tiempo_espera.tv_sec = 1;
setsockopt(victima, SOL_SOCKET, SO_RCVTIMEO, (char*)&tiempo_espera, sizeof(timeval));
while (recv(victima, bloque, 3000, 0) > 0)
respuesta += string(bloque);
Saludos ft kxd