私はselect
を2つのUDPソケットに持っています。ときどきselect
は2を返すので、両方のソケットは受信準備が整っていますが、最初に読める最も古いメッセージを受け取りたいと思います。これをアーカイブする方法はありますか? T1はソケットS1に到着した時にselect fd_setメッセージの到着時間で
- メッセージM1:
は、私が最初にまず、到着したメッセージを取得する必要があります。時間T2で
- メッセージ平方メートルはソケットS2に到着しました。
T1 < T2:だから私は、ソケットS1からの最初のメッセージM1を取得する必要があります。
今私はこれに似た何かを持っている:選択戻り2場合
recived do_recive(fd_set* container, int nfds, int* sockets, unsigned n_sockets) {
// ...
int activity = select(nfds, container, NULL, NULL, NULL);
// ...
for(i=0;i<n_sockets;i++) {
if(FD_ISSET(sockets[i], container)) {
recvfrom(...);
break;
}
}
// ...
}
短い答え:できません。 – wildplasser