Conexões TCP

Java suporta a troca de bytes entre um cliente e um servidor TCP através do estabelecimento de uma conexão entre eles. A conexão pode ser interpretada como uma ligação direta entre os dois processos, através da qual os bytes podem fluir nos dois sentidos.

Para estabelecer a conexão TCP, é preciso identificar as extremidades dessa conexão tanto no processo cliente como no processo servidor. Essas extremidades são soquetes, identificados por um endereço de rede e um número de porta.

O estabelecimento da conexão entre os dois processos dá-se através da instanciação de um objeto da classe Socket a partir do processo cliente. Uma vez que a conexão entre cliente e servidor tenha sido estabelecida pela criação dos correspondentes soquetes, os dados da aplicação podem fluir através dos streams a ela associados.

O processo servidor na arquitetura TCP deve estar preparado para responder a solicitações de conexões por parte dos clientes, permanecendo em estado de espera (listening) entre solicitações. A classe Java que oferece essa funcionalidade é a classe ServerSocket.