It's odd to me that the iPhone doesn't include native support for receiving streaming audio. That seems like a natural application for a wireless-enabled portable music player. But I'm sure the boffins at Apple know what they're doing.
There's a variety of uglyish hacks to make the phone play streams. I haven't tried any of them: I'm a Treo user. Do weigh in if you've had success or near-success with any of these.
Meanwhile, I'll tell you how my Treo 650 and I rock.
On my home server, I have all my music stored as FLAC and MP3 files. Lots of music.
The server also runs Jinzora, an open-source, PHP-based streaming media application. Jinzora is very light-weight.
On my Treo, I open Jinzora's index page in a web browser, select from my complete library a song or album or playlist I'd like to hear, and click Play. A standard M3U playlist (hooray for standards) of the tracks I've chosen opens in Pocket Tunes.
For each track, Jinzora down-samples the audio to 96 kbit/s, which I've found is the optimal size for streaming over Sprint's slow network. Pocket Tunes runs in the background of whatever application I'm using.
Incidentally, my Treo has been modded to accept a normal headphone. Coming up on the second anniversary of the mod and still going strong.
See Also: