2010-03-17 2 views

답변

2

당신이 할 수있는 유일한 방법은 내가 아는 한 그것을 응용 프로그램 측면에서 처리하는 것입니다. 나는 당신에게 실시간 데이터의 일종을 얻는 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에 대한 매뉴얼 페이지를 참조하십시오 : 그런 경우 다음과 같은 의사 코드 같은 것을 할 수 있습니다.

0

DNS 레코드에는 응용 프로그램이 결과와 요청을 일치시킬 수 있도록 임의의 트랜잭션 ID가 있습니다. 자체 거래 ID를 사용해보십시오.

관련 문제