Exact je parle de C. J'ai déjà passé pas mal de temps sur cette page
int perform_select(int sock)
{
fd_set set;
struct timeval timeout;
int ret;
timeout.tv_sec = 3;
timeout.tv_usec = 0;
FD_ZERO(&set);
FD_SET(sock, &set);
ret = select(sock + 1, &set, NULL, NULL, &timeout);
return (FD_ISSET(sock, &set));
}
char test_response(int sock)
{
int ret = 0;
char *buff = (char*)malloc(301);
FILE *file;
fopen_s(&file, "file.txt", "w+");
if (file == NULL)
{
perror("fail open: ");
return (1);
}
while (perform_select(sock) > 0)
{
ret = recv(sock, buff, 300, 0);
printf("%d\n", ret);
fwrite(buff, sizeof(char), ret, file);
}
fclose(file);
free(buff);
}
Pour ce qui est du retour de perform select, j'ai essayé de plusieurs manières, dont en utilisant le retour de la fonction select, mais ça n'a rien changé.
Message édité le 02 février 2015 à 09:28:15 par OngletItalique