在发送包状态数组pingpacket[128]中,找到空闲的位置:
在main函数中初始化了:memset(pingpacket, 0, sizeof(pingm_pakcet) * 128);
/*查找一个合适的包位置
*当seq为-1时,表示查找空包
*其他值表示查找seq对应的包*/
static pingm_pakcet *icmp_findpacket(int seq)
{
int i=0;
pingm_pakcet *found = NULL;
/*查找包的位置*/
if(seq == -1) /*查找空包的位置*/
{
for(i = 0;i<128;i++)
{
if(pingpacket[i].flag == 0)
{
found = &pingpacket[i];
break;
}
}
}
else if(seq >= 0) /*查找对应seq的包*/
{
for(i = 0;i<128;i++)
{
if(pingpacket[i].seq == seq)
{
found = &pingpacket[i];
break;
}
}
}
return found;
}