udpserv如何发送数据
请教大家,我试着用rt_thread做server,与网络中的client进行udp方式通讯,采用udpserv例程,能够实现数据的接收和发送,现在遇到一个问题,就是发送数据只能在接收到数据后进行,如果希望发送数据后在一定时间内收不到回应的话,重新发送刚才的数据,该如何实现?我加了一个定时器,发送完数据后启动该定时器,然后根据标志位状态采用定时器回调函数来发送数据,可无法实现。总出现错误。请问该如何实现呢? 上代码,错误是什么 我知道问题所在了,是因为UDPSERV线程在没有数据接收时被挂起,所以在收不到数据时该线程的发送数据也不会实现,可是还是找不头绪解决,可否用定时器回调函数重新执行该线程呢,头都大了,还是自己对这个系统没有充分理解。 楼主现在解决了吗?我现在也是只能在接收到udp数据后才能发送,一重新上电就不行了 lwip udp接收可以设置超时的,如下conn = netconn_new(NETCONN_UDP);
conn->recv_timeout = 100; //设定接收超时100ms,单位为ms
netconn_bind(conn, IP_ADDR_ANY , rport);
lwip1.3直接设置recv_timeout 成员变量
lwip1.4有一个设置超时的函数,可以自己查查文档
页:
[1]