高级会员
- 积分
- 906
- 金钱
- 906
- 注册时间
- 2016-3-26
- 在线时间
- 116 小时
|
1金钱
void udp_server_rev(void* arg,struct udp_pcb* upcb,struct pbuf* p,struct ip_addr*addr ,u16_t port)
{
u32_t crc16_1;
u32_t crc16_2;
u32_t data_len=0;
struct pbuf *q,*ptr;
if(p!=NULL)
{
pbuf_free(p);
fcl_control_sys[6]=0x00;
fcl_control_sys[7]=0x01;
fcl_control_sys[8]=0x06;
fcl_control_sys[11]=0x03;
fcl_control_sys[9]=(unsigned char)(CRC16_1(fcl_control_sys,9)>>8);
fcl_control_sys[10]=(unsigned char)(CRC16_1(fcl_control_sys,9));
ptr=pbuf_alloc(PBUF_RAW,12,PBUF_RAW);
pbuf_take(ptr,(u8*)fcl_control_sys,12);
udp_sendto(upcb,ptr,addr,UDP_send_PORT); 开发板每次都返回一个指定的端口
pbuf_free(ptr);
}
}
开发板接收到数据之后清空,然后回应一个成功包(测试用,什么都没处理,就只分配发送包需要的内存)。我发送1.8M的mp3文件,为什么要耗时10分钟左右?
PC端使用的是组播230.1.2.3地址,每次发包源端口(PC)都随机改变,开发板每次都返回一个指定的端口。
|
|