Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Ciência da Computação APS 5º Semestre

Por:   •  3/5/2018  •  1.536 Palavras (7 Páginas)  •  258 Visualizações

Página 1 de 7

...

A proposta do projeto é apresentar duas aplicações Java, uma sendo o servidor e a outra o cliente do chat. A aplicação cliente pode ser executada por diversos usuários desde que, o servidor esteja rodando para gerenciar a troca das mensagens.

Para a conexão do cliente é necessário que o usuário escolha um nome para entrar no chat , não sendo necessário colocar o ip e a porta do servidor, exceto em casos específicos que necessitem apontar essas informações.

4.1. Servidor Chat

O servidor servirá como a unidade centralizadora de todas as conexões recebidas via socket e tera a responsabilidade de controlar e enviar as mensagens para todos os demais clientes conectados. Quando um cliente se conecta, ele mesmo cria uma thread para aquele cliente, ou seja, terá a sua respectiva Thread e o servidor fará a gestão disso.

A inicialização do servidor é indispensável para o correto funcionamento da aplicação, pois o cliente se conecta através de um ip e porta, no caso desta, localhost e porta 5000 para executar na mesma máquina para testes.

Caso o servidor não esteja executando, será rejeitada a conexão e o cliente não conseguirá conectar nem enviar mensagens.

4.2. Cliente Chat

O cliente servirá como tela de interação com o usuário do chat. Nela o usuário colocará seu nome, e em casos específicos, terá que colocar endereço ip e porta do servidor. Por padrão a aplicação conecta em localhost porta 5000.

Cada usuário criará uma instância do cliente e solicitará uma conexão com o servidor socket. Caso aprovada, ele se conecta e pode enviar e receber mensagens dos demais clientes conectados so servidor.

Para enviar as mensagens o usuário, após se conectar ao servidor, deverá digitar a mensagem no campo correspondente e clicar em enviar. Instantaneamente a mensagem é enviada para o servidor e ele enviar à todos os demais usuários conectados ao chat.

5. RELATÓRIO LINHAS DE CÓDIGO

ClienteChat.java

package classes;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.Socket;

import javax.swing.JOptionPane;

public class ClienteChat extends javax.swing.JFrame {

//Socket usado para a ligação

private Socket socket;

//Streams de leitura e escrita. A de leitura é usada para receber os dados do

//servidor, enviados pelos outros clientes. A de escrita para enviar os dados

//para o servidor.

private DataInputStream din;

private DataOutputStream dout;

//apenas para que o utilizador não altere o nick a meio da conversa

private String nick;

/** Creates new form ClienteChat */

public ClienteChat() {

initComponents();

}

public void ligar() {

try {

nick = jtfNick.getText().trim();

jtaMensagens.append(": Conectando...\n");

String host = jtfEndereco.getText().trim();

int port = Integer.parseInt(jffPorto.getText().trim());

//criar o socket

socket = new Socket(host, port);

//como não ocorreu uma excepção temos um socket aberto

jtaMensagens.append(": Conexão estabelecida...\n");

//Vamos obter as streams de comunicação fornecidas pelo socket

din = new DataInputStream(socket.getInputStream());

dout = new DataOutputStream(socket.getOutputStream());

//e iniciar a thread que vai estar constantemente à espera de novas

//mensages. Se não usassemos uma thread, não conseguiamos receber

//mensagens enquanto estivessemos a escrever e toda a parte gráfica

//ficaria bloqueada.

new Thread(new Runnable() {

//estamos a usar uma classe anónima...

public void run() {

try {

while (true) {

//sequencialmente, ler as mensagens uma a uma e acrescentar ao

//texto que já recebemos

//para o utilizador ver

jtaMensagens.append(din.readUTF() + "\n");

}

} catch (IOException ex) {

jtaMensagens.append(": " + ex.getMessage());

}

}

}).start();

} catch (IOException ex) {

jtaMensagens.append(": " + ex.getMessage());

}

}

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

*

...

Baixar como  txt (15.3 Kb)   pdf (68.5 Kb)   docx (21.7 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no Essays.club