Olá!
Como o amigo ai em cima disse anteriormente, a linguagem que o cliente foi desenvolvido não vai importar, o que vai importar é o protocolo de comunicação. Esse protocolo normalmente é composto de Strings que são enviadas dos clientes para o servidor. Chegando lá, o servidor vai interpretar o que veio na String e tomar alguma ação. Tanto os clientes quanto o servidor devem ser capazes de entender esse protocolo. Exemplo:
Participantes:
ClienteJava - ServidorJava - ClienteVB
Vamos imaginar um messenger com um protocolo proprio com o seguinte formato:
acao:origem:destino:parametro1,parametro2,parametro3…
Ações disponíveis:
msg:origem:destino:mensagem - Envia uma mensagem, ex: msg:ClienteJava,ClienteVb,Olá ClienteVB!
No caso o servidor vai receber essa String e vai enviar a mensagem pro destino que estiver na String.
som:origem:destino:nomedosom - Toca um som no cliente
Mesmo exemplo acima, diferenciando que o servidor ao inves de mandar uma msg, ele vai mandar uma String pro cliente de destino dizendo pra ele tocar um som.
No final da história quem define quais comandos são suportados é quem desenvolve.
Abraços