Weird - sounds like a bad prototype. The Linux I have here most definitely accepts a void* parameter, but it seems like your system has a char* parameter.

*checks*

Hmm, seems like WinSock is this braindead culprit here. Urgh!

If I were you, I'd get a library like ASIO or POCO that abstracts this whole mess away.