use recvBuf instead of new array, change buffering