If you specify the URL with no credentials:
cpp> ./helloworld 192.168.0.16:5674/aaa
amqp:connection:framing-error: AMQP header mismatch: Insufficient data to determine protocol [''] (connection aborted)
This error message is true in a strict sense but does not give a user much of a clue about what's wrong.
The same setup with good URL credentials:
cpp> ./helloworld user:firstname.lastname@example.org:5674/aaa
The same setup with bad URL credentials:
cpp> ./helloworld user:email@example.com:5674/aaa
amqp:unauthorized-access: Authentication failed [mech=DIGEST-MD5]
This error message is good.