Hombre, si lo que dominas es java yo me iría a jxta, porque parece una abastracción de los sockets (recuerda que los sockets no son más que un puñado de funciones como las de ficheros (open/close/read/write y algunas más de control select/bind/etc). En jxta no he hecho nada; lo único parecido que he hecho en java ha sido con
http://java.sun.com/products/java-media/jmf/' target='_blank'>JMF (Java Media Framework, que está bien si quieres añadir voz al chat XD).
De la implementación a C ni idea, he visto el port a C#, pero nada más.
También puedes echar un vistazo a otras libs como
http://www.rakkarsoft.com/' target='_blank'>RakNet o
http://www.hawksoft.com/' target='_blank'>Hawk NL (no, no he probado ninguna).
Si el objetivo es aprender y lo que conoces es C:
Como un chat no es demasiado complicado, como primera aplicación se puede hacer con sockets. Una vez que estés conforme con la programación de red, se puede pensar en un objetivo mayor o incluso volver a hacer el chat usando una de las librerías.
Si vuelves a considerar sockets:
Guía estupenda (pero de Unix):
http://www.arrakis.es/~dmrq/beej/index.html' target='_blank'>
http://www.arrakis.es/~dmrq/beej/index.htmlArtículos Winsock en Gamedev:
http://www.gamedev.net/reference/list.asp?categoryid=30#298' target='_blank'>
http://www.gamedev.net/reference/list.asp?...tegoryid=30#298Si conoces java, JXTA. Si conoces C, sockets. Si quieres aprender librería concreta, la librería.
¿Por qué no puedes hacer correr JXTA?