Greetings All,
I am using the RL_ARM TCP net library in order to establish a connection with the LPC2468.
I have the following code to initialize the UDP connection:
static U8 retval = 0xFF; udp_soc = udp_get_socket (0, UDP_OPT_SEND_CS | UDP_OPT_CHK_CS, udp_callback); if ( udp_soc != 0 ) { retval = udp_open(udp_soc,0); }
The implementation of the udp_callback function is:
delayMs(500); Buffer = udp_get_buf (count); memcpy(Buffer, ptr,count); retval = udp_send (udp_soc, _remip, _remport, Buffer, count); return (0);
_remip is the port that is autoselected, and _remip is the ipaddress passed to the function.
The udp test program that I have is ServerTalk, and allows me to connect to an ip adress and not specify a port, however, any data I attempt to send to the UDP connection is never recieved in my code.
I have switched things around, where I specify a port in the code, and it works better, but really want to not have to do that.
Has anyone ever run into similar issues, or am I doing something fundamentally wrong?
Any help is appreciated.
Thanks,
Is mostly correct. It is important that both client and server agree on a particular port number, but the server does not have to have a hardcoded port to achieve this. It is not unusual for the port number to be a configurable option.
Correct. I shouldn't have used the word "hardcodeed" but maybe "static" or "predefined".
It is actually even possible for a server to have a dynamic port - but then the client must have other means (such as another port to request configuration info from or a "man-in-the-middle" or similar) to find out what this port is.
But when the client starts to communicate it may specify its own port or let the stack find an available port. But it must know what port to use on the server side. And the server must already listen on this port, to be able to receive any data from the client.