If I simply follow what is in the Protocol Specification below, is there any reason you can think of that I would never receive a tx or block message from a peer?https://en.bitcoin.it/wiki/Protocol_specification
I'm pretty sure I am making getdata requests correctly. When I receive an inv message, I copy each inventory vector and send out a getdata request. (after I have this working, I'll combine many inventory vectors in one getdata request). I've checked and double checked that my checksum works the same way as the official client. Is there anything undocumented that I need to do to get peers to send tx or block messages? I already have them successfully sending addr messages when I send a getaddr message.
I've been trying to troubleshoot for hours so your help is greatly appreciated!