GithubHelp home page GithubHelp logo

networkcommunication's Introduction

Comunicação com Sockets em Java

Esta aplicação implementa uma comunicação servidor e cliente utilizando Sockets em Java com GUI. Por meio do protocolo TCP o cliente se conecta ao servidor e consegue entrar e sair dos grupos, já por meio do Protocolo UDP os clientes conectados que estejam no mesmo grupo conseguem trocar mensagem via chat uns com os outros dentro desse grupo.

Funcionalidades

  • Servidor:

    • Gerencia a criação e remoção de grupos.
    • Gerencia a entrada e saída de clientes dos grupos.
    • Recebe mensagens de clientes e as retransmite para todos os membros do grupo (exceto quem enviou).
  • Cliente:

    • Conecta-se ao servidor utilizando o endereço IP do servidor.
    • Entra e sai de grupos através de TCP.
    • Envia e recebe mensagens de outros clientes do mesmo grupo via UDP.

Como executar

Para rodar esse projeto o ideal é que se utilize outras máquina (pode ser máquina virtual) para rodar tanto o servidor quanto o cliente máquinaas diferente, quanto diferentes clientes. Além disso, é preciso executar primeiro o servidor.

Como Executar o Servidor

  1. Entre na pasta Servidor

  2. Compile o projeto:

    javac Principal.java
  3. Execute o projeto:

    java Principal
  4. Será mostrado no Console as portas TCP e UDP que está rodando e o Ip que esse servidor ta rodando.

Como executar o Cliente

  1. Entre na pasta Cliente

  2. Compile o projeto:

    javac Principal.java
  3. Execute o projeto:

    java Principal
  4. A primeira tela vai pedir o Ip do servidor com o qual ele vai se conectar, logo insira Ip que foi mostrado quando executou o servidor

  5. Repita os passos anteriores para criar outros clientes.

Pronto, agora a aplicação estará rodando e poderá fazer o uso dela. Mas perceba que com apenas um cliente e um servidor é possível testar o TCP por completo porém acaba não sendo possível testar a troca de mensagens, para isso precisa de no mínimo 2 clientes. Caso queira executar no VSCode, ao invés do 2° e 3° passo apenas ir na classe Principal e executar.

obs: É possível testar com uma máquina só rodando duas instâncias e usando Ip de Loopback (127.0.0.1), mas pode resultar em alguns problemas e em limitações, além de que não é possível testar completo (já que pra testar o UDP é preciso no mínimo dois clientes executando e um servidor)

image image
image image

networkcommunication's People

Contributors

adryalves avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.