I use RSocket::Recv() to receive data from the connected socket. I also use RSocket::Write() to write data to that same socket. It all works fine for a few hours but then it stops. RunL() is then called about an hour later with iStatus == -5105 (KErrInet6NoRoute). I can reproduce it pretty reliably on E61 (S60 3rd edition). Until this error, the active object is "stuck" on the Recv() for about an hour. Why would it ever be stuck for so long just to come back with this error an hour later?

Has anybody else seen this problem before? Is there a timeout option for the RSocket? Any advice would be greatly appreciated.
Thanks!