Description
Description of defect
Huge problem with this, I have several remote devices connected on my local network. Some may be 'off-line' at times so I need the connect() function to back out within a few milliseconds. However whatever I try the function locks up for 30 seconds if the remote device IP address has dropped out.
When the remote device is active, the connection time is in the order of 2-3 milliseconds, I would be aiming for a 10 millisecond timeout.
I'm using TCPsocket, however this probably affects other sockets as well.
The 30 seconds is constant so perhaps there's a global value somewhere that I could 'tweak' for a temporary fix?
I think its a similar issue as mentioned here, however it needs to time out before the possibility of starting a new connect():
#https://forums.mbed.com/t/socket-connect-implementation-in-mbed-os/8055
This example below can demonstrate it, however I think its academic as the time out function is not employed with the connect() function (unless I've missed something).
Timer t1;
TCPSocket remote_device;
SocketAddress remote_addr("192.168.1.150",80);
remote_device.open(net);
remote_device.set_timeout(10); // set 10 mS timeout
t1.start();
remote_device.connect(remote_addr);
t1.stop();
printf ("connect time: %f\n", t1.read());
Target(s) affected by this defect ?
Any
Toolchain(s) (name and version) displaying this defect ?
OS 5.15
OS 6 alpha-3
What version(s) of tools are you using. List all that apply (E.g. mbed-cli)
Mbed-online.
Studio-online