added setters and getters of SO_TIMEOUT
made final additions to the connection class: only one read task can be executed at a time, same thing for the write task, although one read and one write task are allowed to run simultaneously; read and write operations are now initialized with a timeout; added method for cancelling the current read
added very important comment regarding the cancelCurrentRead() method