The metadata for SHOUTcast/Icecast streams is not in the headers, but in the actual stream itself.
That icy-metaint: 16000
header you have is the key. Every 16,000 bytes, you will get a metadata block. The first byte in that block indicates metadata length. Multiply its value by 16 to get the length in bytes. Once you do that, you will end up with something like this:
StreamTitle='Awesome Trance Mix - DI.fm';StreamUrl=''
It will be padded at the end by null bytes until you reach the length of the block.
I have answered the same question here for PHP, but the concept is the same no matter what language: Pulling Track Info From an Audio Stream Using PHP