Chat em java

7 respostas
A

Pessoal,

tenho um trabalho semestra de java e o objetivo é construir um “chat”, com transferencias de arquivos e exibir imagens (quase um messenger) ehehhe…

comecei a escrever um codigo (do servidor).

import java.io.;
import java.net.
;

public class cliente {

private Socket soc;

private PrintWriter Esc;

private BufferedReader Br;

private BufferedReader Lr;

public cliente ()  {

try {

Socket soc=new Socket(“localhost”,1234);

PrintWriter Esc = new PrintWriter(soc.getOutputStream(),true);

BufferedReader Br = new BufferedReader(new InputStreamReader(System.in));

BufferedReader Lr = new BufferedReader(new InputStreamReader(soc.getInputStream()));

}
catch(Exception e) {

e.printStackTrace();

}

}

minha duvida é: o servidor sempre tem que ta escutando (ele escuta, imprime maiusculo o resultado e fecha a conexão. queria que ele ficasse sempre esperando pedidos dos clientes…

Seria assim:

servidor - 2 clientes

os clientes se comunicam pelo servidor que escuta e replica as mensanges… (a parte cliente ta quase pronta, fiz tudo em swing) agora so falta implementar a parte do servidor (as frases serão inseridas num jTextArea e a linha de digitação sera um jTextField.

Abraços,

Alexandre

7 Respostas

M

eu tinha o código de um bem parecido com o seu em Swing aqui prontinho, mas ele não implementava essa opção de enviar arquivos… :oops:

M

…instancie uma Thread em cada conexão do cliente no servidor :bocao:

R

eu tava querendo saber como que eu mando uma imagem do cliente para o servidor?
como que vc fez no cliente pra enviar a imagem?

E

Cara faz o seguinte no servidor, fica melhor o codigo.
realmente tem que ter thread

while(true){

// codigo

}

R

eu to tentando fazer um programa que alem de enviar uma mensagem de um cliente para um servidor, ele tambem envia uma imagem!mas não tenho a minima ideiaa de como fazer pra enviar a imagem!o meu programa ja esta pronto, so não tem a parte do envio de imagens!alguem pode me ajudar?

B

Vc pode transferir qualquer tipo d dado com sockets (até onde eu sei :grin: ), então, vc pode tranferir objetos, ae eh soh vc tranferir uma instância d alguma classe q represente a imagem…exemplo:

No cliente:

ImageIcon i = new ImageIcon(“fdfdfd”);
objectOutputStream.write(i);

No servidor:

ImageIcon ii = (ImageIcon) objectInputStream.read();

Nunca fiz isso com imagens, mas creio q d certo…

N

Nunca fiz um chat em JAVA, mas a idéia é a seguinte (não sei se é a melhor idéia):

Dentro do Servidor, onde vai receber as conexões dos clientes, vc coloca dentro de um for. No caso, que vc quer apenas 2 conexões, então vc vai de 0 até < 2.

Qnd se conectarem, vc guarda os sockets num atributo da classe. Ae qnd alguém escrever, vc verfica para onde que ele quer enviar a msg (qual cliente) e vc manda escrever nesse socket.

[]'s

Criado 8 de abril de 2004
Ultima resposta 9 de abr. de 2004
Respostas 7
Participantes 6