C の sendto 関数で奇妙な結果が得られました (LINUX) 私がやろうとしているのは、信頼できる UDP のようなスキームを実装することです。
以下に示すコード スニペットは、パケットがドロップされたときに期限切れになるタイマーの一部であり、そのパケットを再送信するためにプロセスにメッセージを送信します。
私が抱えている奇妙な問題は、大きなファイルを転送するときに...> 300KB以下のコードは完全に機能します(つまり、ELSE部分が実行されます)しかし、特定の数のパケットが送信された後...それを実行します部。!!!
コードが約 250 パケットで正常に機能したが、251 パケットで正常に機能したため、これは奇妙です。
n = sendto(sockfd, &(forwardPeer->id), sizeof(forwardPeer->id), 0, (struct sockaddr*)&tcpd_addr, sizeof(tcpd_addr));
if(n<0)
printf("\n error sending to tcpdc");
else
printf("\n message sent to tcpdc");
助けてください!!!!前もって感謝します