初中生
最后登录1970-1-1
在线时间 小时
注册时间2016-9-1
|
楼主 |
发表于 2016-9-1 16:42:25
|
显示全部楼层
问题就是,通过网络助手。发送数据。电脑没有回复数据。
具体程序:
uint8 remote_ip[4]={192,168,1,102};
uint16 remote_port=5000;
自己为了测试程序运行到哪一步,增加输出语句。
void do_udp(void)
{
uint16 len=0;
uint8 buff[2048]; /*定义一个2KB的缓存*/
switch(getSn_SR(SOCK_UDPS)) /*获取socket的状态*/
{
case SOCK_CLOSED: /*socket处于关闭状态*/
socket(SOCK_UDPS,Sn_MR_UDP,local_port,0);
printf(" W5500接收计算机发送来的数据2"); /*初始化socket*/
break;
case SOCK_UDP: /*socket初始化完成*/
delay_ms(10);
if(getSn_IR(SOCK_UDPS) & Sn_IR_RECV)
{
setSn_IR(SOCK_UDPS, Sn_IR_RECV); /*清接收中断*/
printf(" W5500接收计算机发送来的数据4");
}
len=getSn_RX_RSR(SOCK_UDPS);
//if((len=getSn_RX_RSR(SOCK_UDPS))>0)
if(len>0)/*接收到数据*/
{
printf(" W5500接收计算机发送来的数据5");
recvfrom(SOCK_UDPS,buff, len, remote_ip,&remote_port); /*W5500接收计算机发送来的数据*/
printf(" W5500接收计算机发送来的数据6");
// buff[len-8]=0x00; /*添加字符串结束符*/
buff[len]=0x00;
printf("%s\r\n",buff); /*打印接收缓存*/
// sendto(SOCK_UDPS,buff,len-8, remote_ip, remote_port); /*W5500把接收到的数据发送给Remote*/
sendto(SOCK_UDPS,buff,len, remote_ip, remote_port);
}
break;
}
}
|
|