lib/socket: intro `flush` and `blocking=`