327200 バイトのフレームのストリームを送信しようとしています
そこで、各フレームを51200 バイトのパケットごとに 6 つのパケットに分割して送信することにしました。
void sendframe(char *data)
{
char *tmparr[6];
for(int i=0;i<6;i++)
{
tmparr[i] = data +(i*51200);
}
for(int i=0;i<6;i++)
{
n = sendto(sockfd, tmparr[i], 51200, 0, (struct sockaddr*)&serveraddr, sizeof(serveraddr));
if (n < 0)
error("ERROR in sendto");
}
}
サーバーが4 つまたは 5 つのパケットしか受信しないのはなぜですか?? 6 未満でも 4 未満でもありません。パケットの損失はありません。各パケットは 51200 バイトです。損失はパケット数のみであり、不完全なパケットを受信することはありません ??
注: 私はLinuxを使用しており、送信者と受信者はローカルホストです