«recvfrom()» в приведенном ниже примере кода ожидает, пока не будет получен пакет UDP.Как проверить, получен ли пакет UDP в C Linux
Но мне нужно проверить, доступен ли пакет UDP или нет. Если пакет не получен, продолжите другие задачи. Если пакет принят, тогда получите пакет и разбор. Как это сделать в программе Linux c? Пожалуйста помоги!
for (;;)
{
printf("waiting on port %d\n", SERVICE_PORT);
recvlen = recvfrom(fd, buf, BUFSIZE, 0, (struct sockaddr *)&remaddr, &addrlen);
printf("received %d bytes\n", recvlen);
if (recvlen > 0) {
buf[recvlen] = 0;
printf("received message: \"%s\"\n", buf);
}
}
Вы можете использовать ('select') [linux.die.net/man/2/select] функцию, чтобы знать, что что-то готово к чтению в сокете. – purplepsycho
есть выбор работающий. Спасибо. – Brian