É possível manter os soquetes abertos tempo infinito

Eu sou novo em programação de rede. Estou interessado é possível estabelecer conexão de rede via sockets entre o servidor Java e o cliente C e manter a conexão aberta infinitamente? Eu quero manter a conexão aberta para trocar dados XML entre os clientes.