Oui il faudra connaitre les réseaux, et encore plus si tu pars d'un langage dans lequel le support est assez bas niveau (au hasard, le C : http://broux.developpez.com/articles/c/sockets/)
Tu peux le faire en Java (pas pour le langage ..) mais il te permettra de rapidement faire un programme basique multiplateforme à tendance réseau.
Globalement, tout les langages te le permettront.