2019-03-23 15:01发布
LeoMe 发表于 2018-12-5 08:42 不光是ip,ip你可以用广播ip没问题,另外两端的端口也是要相同的,你的目的地端口和对面打开的端口要是同一 ...
lcn1992 发表于 2018-12-4 20:38 可以试下不用全网段广播,比如改为192.168.1.255试下。
最多设置5个标签!
端口都是8089.
谢谢!试过了,不行
void udp_demo_test1(void)
{
err_t err;
//struct udp_pcb *udppcb; //定义一个TCP服务器控制块
struct ip_addr rmtipaddr; //远端ip地址
u8 *tbuf;
u8 key;
u8 res=0;
u8 t=0;
udp_demo_set_remoteip();//先选择IP
tbuf=mymalloc(SRAMIN,200); //申请内存
if(tbuf==NULL)return ; //内存申请失败了,直接退出
udppcb=udp_new();
if(udppcb)//创建成功
{
IP4_ADDR(&rmtipaddr,lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2],lwipdev.remoteip[3]);
//err=udp_connect(udppcb,&rmtipaddr,UDP_DEMO_PORT);//UDP客户端连接到指定IP地址和端口号的服务器
//err=udp_connect(udppcb,IP_ADDR_ANY,UDP_DEMO_PORT);//UDP客户端连接到指定IP地址和端口号的服务器
err=udp_connect(udppcb,IP_ADDR_BROADCAST,UDP_DEMO_PORT);//UDP客户端连接到指定IP地址和端口号的服务器
if(err==ERR_OK)
{
err=udp_bind(udppcb,IP_ADDR_ANY,UDP_DEMO_PORT);//绑定本地IP地址与端口号
//err=udp_bind(udppcb,IP_ADDR_BROADCAST,UDP_DEMO_PORT);//绑定本地IP地址与端口号
if(err==ERR_OK) //绑定完成
{
udp_recv(udppcb,udp_demo_recv,NULL);//注册接收回调函数
}else res=1;
}else res=1;
}else res=1;
}
我把程序改成这样,电脑能收到单片机的数据,单片机收不到电脑发的数据。
一周热门 更多>