terça-feira, 8 de setembro de 2020

DICA - CRIANDO UM SOCKET DE REDE COM JAVA

Socket provê a comunicação entre duas pontas (cliente e servidor) – também conhecido como two-way communication – entre dois processos que estejam na mesma máquina (Unix Socket) ou na rede (TCP/IP Sockets). Na rede, a representação de um socket se dá por ip:porta, por exemplo: 127.0.0.1:4477 (IPv4). Um socket que usa rede é um Socket TCP/IP.

O cliente na programação de socket deve saber duas informações:

  • Endereço IP do servidor, e
  • Número da porta.

Aqui, faremos uma comunicação unilateral entre cliente e servidor. Neste aplicativo, o cliente envia uma mensagem para o servidor, o servidor lê a mensagem e a imprime. Aqui, duas classes estão sendo usadas: Socket e ServerSocket. A classe Socket é usada para comunicar cliente e servidor. Através desta classe, podemos ler e escrever mensagens. A classe ServerSocket é usada no lado do servidor. O método accept () da classe ServerSocket bloqueia o console até que o cliente seja conectado. Após a conexão bem-sucedida do cliente, ele retorna a instância do Socket no lado do servidor.


Um socket é simplesmente um ponto final para comunicações entre as máquinas. A classe Socket pode ser usada para criar um socket.


A classe ServerSocket pode ser usada para criar um socket de servidor. Este objeto é usado para estabelecer comunicação com os clientes.


Criando Servidor

Para criar o aplicativo servidor, precisamos criar a instância da classe ServerSocket. Aqui, estamos usando o número da porta 6666 para a comunicação entre o cliente e o servidor. Você também pode escolher qualquer outro número de porta. O método accept () espera pelo cliente. Se os clientes se conectam com o número de porta fornecido, ele retorna uma instância de Socket.

ServerSocket ss=new ServerSocket(6666);  
Socket s=ss.accept();//establishes connection and waits for the client 
Criando cliente

Para criar o aplicativo cliente, precisamos criar a instância da classe Socket. Aqui, precisamos passar o endereço IP ou nome de host do servidor e um número de porta. Aqui, estamos usando "localhost" porque nosso servidor está rodando no mesmo sistema.

    Socket s=new Socket("localhost",6666); 

Vamos ver um exemplo simples de programação de socket Java em que o cliente envia um texto e o servidor o recebe e imprime.

Exemplo1 Server.java

import java.io.*;  
import java.net.*;  
public class MyServer {  
public static void main(String[] args){  
try{  
ServerSocket ss=new ServerSocket(6666);  
Socket s=ss.accept();//establishes connection   
DataInputStream dis=new DataInputStream(s.getInputStream());  
String  str=(String)dis.readUTF();  
System.out.println("message= "+str);  
ss.close();  
}catch(Exception e){System.out.println(e);}  
}  
}

Exemplo1 Client.java

    import java.io.*;  
    import java.net.*;  
    public class MyClient {  
    public static void main(String[] args) {  
    try{      
    Socket s=new Socket("localhost",6666);  
    DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
    dout.writeUTF("Hello Server");  
    dout.flush();  
    dout.close();  
    s.close();  
    }catch(Exception e){System.out.println(e);}  
    }  
    } 

Gostou dessa dica? Que tal fazer um treinamento completo em Java o qual vai te tirar do nível zero ao profissional Expert? Investir em conhecimento é o melhor negócio que você pode fazer. Aproveite a promoção de 70% de desconto e comece hoje mesmo a trilhar novos níveis em sua carreira profissional. Assista a um vídeo demonstrativo do treinamento Java Web Fullstack e não perca tempo em se inscrever.

>>> INSCRIÇÕES FORMAÇÃO JAVA WEB FULLSTACK [70% OFF] <<<

Nenhum comentário:

Postar um comentário

MÉTODO ESSENCIALISMO UMA FORMA DE APRENDER A PROGRAMAR EM JAVA

 O essencialismo é mais do que uma estratégia de gestão de tempo ou uma técnica de produtividade. Trata-se de um método para identificar o q...