{
fSocket = s;
fParentServer = parentServer;
fIOInputStream = new GenericIOInputStream(new BufferedInputStream(fSocket.getInputStream(), fSocket.getReceiveBufferSize()), this);
fIn = new LineReader(fIOInputStream);
fOut = new GenericIOOutputStream(new BufferedOutputStream(fSocket.getOutputStream(), fSocket.getSendBufferSize()));
fUserValue = new AtomicReference<T>(null);
fLastReadTicks = new AtomicLong(System.currentTimeMillis());
fLastFlushTicks = new AtomicLong(System.currentTimeMillis());
fIsOpen = new AtomicBoolean(true);