Я написал сервер, который, когда браузер пытается подключиться к определенным сайтам, проверяет черный список и отправляет обратно 404, однако, когда я вызываю send (), ошибки нет, но сообщение не появляется в сети.браузер, если я не закрою соединение?
Есть ли какие-нибудь советы?
Прием соединения из браузера
while(1){
connfd = accept(fd, (struct sockaddr *) &cliaddr, &cliaddrlen);
if (connfd == -1) {
perror ("unable to accept");
return 1;
}
printf("%s:%d connected\n", inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port));
printf("%d",threadIndex);
pthread_create(&(thread[threadIndex++]), NULL, processRequests, (void *)connfd);
}
Метод Запросы процесса отправляет фрагмент:
if(blacklisted ==1){
printf("is blacklisted\n");
char *response404 = "HTTP:/1.1 404 not avaliable\r\n\r\n";
printf("%s\n",response404);
int len, bytes_sent;
len = strlen(response404);
bytes_sent = send(connfd, response404, len, 0);
if(len != bytes_sent){
perror("message length doesn't match");
}
}