【发布时间】:2012-07-21 14:49:39
【问题描述】:
我有一个奇怪的问题。 我在android上做了以下测试:
我=0;
而(i
{
//UDP发送数据包
if( sendto(sockfd,buffer,strlen(buffer),0, (struct sockaddr *)&serv_addr, sizeof(serv_addr))
{
error("无法通过 udp 向远程主机发送数据包\n");
}
我++;
}
我用不同的缓冲区大小做了这个测试。当缓冲区大小小于一个数字时(应该在 500bytes 左右),无论我选择哪种大小,比如 20 40 80 160 320 ,while 语句可以在几乎相同的时间内执行,例如 3 分 10 秒。但是,当数据包大小大于 500 时,例如 510 520 600 1280,while 语句的执行时间要长得多,例如超过 10 分钟。谁能给我一些关于原因的提示?
【问题讨论】:
-
你要发送多少个数据报?
-
你的意思是数据报套接字?只有一个
-
我的意思是
datagrams,即你所说的“数据包”。 -
一个数据包是一个缓冲区,大小应该是20 40 80 160
标签: udp packet processing-efficiency sendto