18,356
社区成员
发帖
与我相关
我的任务
分享
while (1)
{
ret = recvfrom(sock_id, &udp_ret, length, 0, (struct sockaddr *)&sender, &len);
printf("%s:%d,%s\n",__FILE__,__LINE__,udp_ret.prm);
if (ret < 0)
{
printf("%s:%d,recvfrom:%s\n",__FILE__,__LINE__,strerror(errno));
return NULL;
}
// printf("%s,%s,%s:%d\n",udp_ret.prm,udp_ret.type,udp_ret.zy_data,i++);
if (thread_flag)
{
thread_flag = 0;
return NULL;
}else
{
if (IsQueueFull(q))
{
printf("%s:%d,queue is full in udp_recv,we will miss %d package\n",__FILE__,__LINE__,i++);
}else
{
EnQueue(q,udp_ret);
printf("%s:%d,queue is write in %d\n",__FILE__,__LINE__,i++);
}
}
memset(&udp_ret,0,sizeof(udp_ret));
}
char a[2] = " ";
scanf("%c",a);
send_message(a);
if ('2' == a[0])
{
ret = sendto(sock_id, p, length, 0, (struct sockaddr *)&addr, len);
if (ret < 0)
{
perror("sendto error");
exit(1);
}
}
free(p);
close(sock_id);