Properly check for successful socket creation (!socket! :-)
Setting the readBufferSize will adjust the buffer accordingly.
Added support for poll(), but poll() actually doesn't flag available data? (GCD issue?)
Only poll() the flag for isDataAvailable