fix BEP9 data message (see also prev. commit)
implement constructing messages using multiple recv calls