バッファサイズに達するまで、バイト配列をX回送信したいと思います。私のクライアントは、バッファサイズがいっぱいになるまでバイト配列を送信します。しかし、問題はパケット損失であり、サーバーはバッファサイズの8/10程度しか受信しません。
クライアント:
while(writeSize < bufferSize)
{
bytes_sent += sendto(servSocket, package, sizeof(package), 0, (struct sockaddr *)&server, sizeof(server));
writeSize+= sizeof(package);
}
サーバ:
while(packetSize < bufferSize)
{
bytes_recv += recvfrom(servSocket, package, sizeof(package), 0, (struct sockaddr*)&client, &size);
packetSize += sizeof(package);
printf("Bytes recieved: %d\n", bytes_recv);
}
私はこの問題の解決策を本当に思いつくことはできません。クライアントがすべてのパッケージを送信し、サーバーがパッケージの損失に苦しんでいるときにwhileループが終了しない場合、これを解決する方法はありますか?
どうもありがとう