バイトの中に大量のデータを送信しているソケットがありますが、同じ情報を繰り返していることがよくありますが、受信側はこのバイトを一度に取得できませんでした。私は送信側を遅くする方法を持っていましたが、今は十分なバイトが来ていないため、待ち時間があります。私はリアルタイム転送が必要です。UDPソケット最後に受信したバイトを読み取る
レシーバが最後に受信したバイトを読み込み、他のものを破棄してプログラムで追いかける方法はありますか?
while (sock->isConnect() && tcpsock->isConnect()) {
// with while instead of if, stuck in the loop
if (sock->RecData(buff, 14)) { //receiving 14 bytes from UDP
sendAngles2(buff);
logger->setLatenz(logger->RECV);
}
logger->setLatenz(logger->MAIN);
logger->LogData();
// rest of the code
}
これは専用のスレッドで実行されていますか、または大きなメインループの一部として実行されていますか? – Frank
このループはmain()ループ内にありません – Yann
UDPはブロックプロトコルではないストリームです。あなたはあなたが望むものに到達するために到着するためにすべてのバイトを読みなければなりません。 –