IMHO, p.1
1. Store timestamp for every opened socket.
2. Update timestamp on every Read/Write operation.
2. Make single QTimer and by QTimer::timeout check what socket is expired.
as only one QTimer for all sockets - that is saving (minimizing) resources.