Единственный способ, которым вы могли бы это сделать, - это, насколько я знаю, обрабатывать его на стороне приложения. Я предполагаю, что у вас есть сокет UDP, который получает какие-то данные в реальном времени, и вам нужен только самый последний / самый последний пакет данных. Если это так, вы можете сделать что-то вроде следующего псевдокода:
struct foo {
...
}
int get_most_recent_packet(int sockfd, struct foo *foobuf) {
ssize_t ret; int gotPacket = 0;
while ((ret = recvfrom(sockfd, foobuf, sizeof(struct foo),
MSG_DONTWAIT, NULL, NULL)) > 0) {
gotPacket = 1;
}
if (gotPacket) return 1;
return -1;
}
См. Справочную страницу для recvfrom
.