Cristian Fernandes en Tecnologia e Inovação, Java Brasil, Programadores Atendente • Carrefour 21/12/2016 · 1 min de lectura · +900

Socket Java

Estrutura

Uma aplicação que utiliza sockets normalmente é composta por uma parte servidora e diversos clientes. Um cliente solicita determinado serviço ao servidor, o servidor processa a solicitação e devolve a informação ao cliente . veja a estrutura básica de uma rede na imagem abaixo:


Socket Java                                                    fonte da imagem: devmedia


Sockets



A troca de dados entres computadores é realizado entre sockets. Um socket permite que um dispositivo receba ou envie dados para outros dispositivo da mesma rede. Para entender melhor sobre troca de dados entres computadores vocês poderão ver mais sobre isso  no link ao lado: https://twitter.com/beBee_PT/status/801809895179874304 

Então, Como fazer esta aplicação em java? Simples, veja a estrutura abaixo:

 Socket socket = new Socket (" 184.72.247.120 ", 2000) ; // Um dos construtores da classe Socket recebe o ip e a porta da máquina que queremos nos conectar.

Socket socket = new Socket (" 184.72.247.120 ", 2000) ;

PrintStream saida = new PrintStream ( socket . getOutputStream ()); //  A classe "printstream" do Java trabalha com arquivos para recuperar informações e retornar os resultados para o usuário.

 Scanner entrada = new Scanner ( socket . getInputStream ()); //  A classe Scanner tem como objetivo separar a entrada dos textos em blocos, gerando os conhecidos tokens, que são sequências de caracteres separados por delimitadores que por padrão correspondem aos espaços em branco, tabulações e mudança de linha.


Socket Lado Servidor


Ele deve ser utilizado quando desejamos que uma aplicação seja capaz de aguardar que outras aplicações possivelmente em outras máquinas se conectem a ela. 

Exemplo:

ServerSocket severSocket = new ServerSocket (2000) ; A porta 

Socket socket = serverSocket . accept ();

o método accept() cria um novo socket em outra porta associado à aplicação que se conectou para realizar a troca de dados e liberar a porta do server socket para outras aplicações que desejem se conectar, caso contrário não poderia conecta-se um segundo dispositivo. Podemos fazer isso através de um laço de repetição o while.

Exemplo:

ServerSocket severSocket = new ServerSocket (2000) ;

while ( true ) {

 Socket socket = serverSocket . accept ();