Подскажите с UDP на uIP v1.0. Никак не получается отправить пакет, хотя принимать получается.
Код
void uip_udp_appcall(void)
{
if(uip_udp_conn->lport == HTONS(BOOTETH_LISTENUDPPORT))
{
//-----------------
if(uip_newdata()) {udp_newdata(uip_udp_conn);}
//-----------------
}
}
обработчик принятых данных
Код
void udp_newdata(struct uip_udp_conn *udp_conn)
{
struct uip_udp_state *s = &(udp_conn->appstate);
struct uip_udp_conn *udp_connection;
uint8_t *pBuffer,i;
uint32_t posnum=0;
uint32_t BytesLeft=bMIN(UIP_CONF_BUFFER_SIZE,uip_datalen());
udp_connection=uip_udp_new(&udp_conn->ripaddr, udp_conn->rport);
if(udp_connection==NULL)
return;
//-------------------
//тут обработка полученных байт
//-------------------
uip_udp_remove(udp_connection);
}
отправка буфера по UDP
Код
void ETH_EthUDPFindResponse(void)
{
//----------------------------------
//формирование буфера
//----------------------------------
//memcpy(uip_appdata,ETH_TransmitBuffer,Len);
//uip_udp_send(Len);
//uip_send(ETH_TransmitBuffer,(uint32_t)pBuffer-(uint32_t)ETH_TransmitBuffer);
uip_slen = Len;
memcpy(&uip_buf[UIP_LLH_LEN + UIP_IPUDPH_LEN], ETH_TransmitBuffer, Len > UIP_BUFSIZE? UIP_BUFSIZE: Len);
uip_process(UIP_UDP_SEND_CONN);
uip_slen = 0;
}
Может есть у кого рабочий пример с UDP?
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»