Hello,
I need to send a UDP package with this function( netUDP_Send )
https://www.keil.com/pack/doc/mw/Network/html/group__udp__user__api.html#ga7a82db98b82300e5fd03ce1b7afb6cba
But I don't have remote IP and Port number. I have added a new variable to get remote IP and Port number but it shows me an error.
NET_ADDR4 addrUDP;uint32_t udp_cb_func (int32_t socket, const NET_ADDR *addr, const uint8_t *buf, uint32_t len) { addrUDP=addr; return 0;}
How can I send a UDP package?
I really appreciate your response.
I need to set my device IP Address to 192.168.1.100 and listen to 2050 port. Here is my code:
int main (void){ netInitialize (); Eth(); while(1){ Sendd(); osDelay(100); } } NET_ADDR4 addrUDP={ NET_ADDR_IP4, 5022, 192, 168, 1, 10 }; uint32_t udp_cb_func (int32_t socket, const NET_ADDR *addr, const uint8_t *buf, uint32_t len) { //addrUDP=addr; return 0; } void Eth(){ uint8_t mac_addr [NET_ADDR_ETH_LEN]; uint8_t ip4_addr [NET_ADDR_IP4_LEN]; netIP_aton ("192.168.1.100", NET_ADDR_IP4, ip4_addr); while (netARP_GetMAC (NET_IF_CLASS_ETH | 0, ip4_addr, mac_addr) != netOK) { netARP_CacheIP (NET_IF_CLASS_ETH | 0, ip4_addr, netARP_CacheTemporaryIP); osDelay (1000); } socket = netUDP_GetSocket(udp_cb_func); if (socket >= 0) { netUDP_Open(socket, 2050); } void Sendd(void){ sendbuf = netUDP_GetBuffer (Ether.DataSize); State=netUDP_Send (socket,(NET_ADDR *)&addrUDP, sendbuf,Ether.DataSize); if(State!=netOK){ netUDP_Close(socket); socket = netUDP_GetSocket(udp_cb_func); if (socket >= 0) { netUDP_Open(socket, 2050); netUDP_SetOption (socket, netUDP_OptionTTL, 2); } } }
After programming, I can ping my device( 192.168.1.100 is alive). But I need to do two different strategies:
1)Obtaining remote IP address without inserting in my code (192.168.1.10)
2)Send a UDP package.
So what's the error, that you're trying to set an array to a pointer? Perhaps you should be copying the content? Perhaps the pointer is dynamic/temporal in nature?