Hello,
I see that my TCP connection gets automatically closed by the CC3000 after it is idles for 60s. This happens while I block in recv() and it also happens when I am blocked in select(). (I am using the MSP430FRAM+CC3000 Kit.)
The remote end (the PC side for example) receives a 'recv() returned 0' which means that the socket was closed in a controlled way at the remote end.
The blocking CC3000 recv() returns an error (-1) then.
The blocking CC3000 select() (without a timeout) does not return at all, although the readfds and the errorfds bit is set.
The 60s timeout can be shortened by calling setsockopt(sd, SOL_SOCKET, SOCKOPT_RECV_TIMEOUT, ...), But I cannot make it longer. This indicates that the timeout is indeed caused by the CC3000 (and not by my access point for example).
Is there a way to set the TCP idle timeout to really high values (1 hour or more)?
The select() call behavior is wrong in my opinion and should be fixed.
Cheers,
Johannes