Gostaria de pedir ajuda a todos do fórum, estou tentando desenvolver um chat, e segue o meu codigo abaixo para que alguém possa me dizer porque não consigo obter os dados de um List:
LADO SERVIDOR:
package br.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Vagner Duarte
*/
public class RecebeCliente implements Runnable{
private Socket socket;
private List<String> clientes;
public RecebeCliente(Socket socket) {
this.socket = socket;
}
public void run() {
try {
BufferedReader entrada = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String ip = socket.getInetAddress().getHostAddress();
String nome = entrada.readLine();
System.out.println(ip);
System.out.println(nome);
clientes = new ArrayList<String>();
clientes.add(ip);
clientes.add(nome);
conectados(clientes, socket);
} catch (IOException ex) {
ex.printStackTrace();
}
}
private void conectados(List <String> cli, Socket socket){
this.clientes = cli;
for (int i=0; i<=clientes.size();i++){
try {
ObjectOutputStream saida = new ObjectOutputStream(socket.getOutputStream());
saida.writeObject(clientes);
} catch (IOException ex) {
Logger.getLogger(RecebeCliente.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
LADO CLIENTE:
package br.cliente;
import java.io.BufferedWriter;
import java.io.ObjectInputStream;
import java.io.OutputStreamWriter;
import java.net.ConnectException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.List;
import javax.swing.JOptionPane;
/**
*
* @author Vagner Duarte
*/
public class ClienteSocket {
private String ip;
private String nome;
public ClienteSocket() {
}
public ClienteSocket(String ip, String nome) {
this.ip = ip;
this.nome = nome;
}
public void conectanoservidor(){
try {
Socket cliente = new Socket(ip, 5555);
BufferedWriter saida2 = new BufferedWriter(new OutputStreamWriter(cliente.getOutputStream()));
saida2.write(nome);
saida2.flush();
ObjectInputStream entrada = new ObjectInputStream(cliente.getInputStream());
List<String> conexao = (List<String>) entrada.readObject();
for (int i = 0; i<= conexao.size(); i++){
System.out.println(conexao);
//não sai nada, a aplicação trava....
}
saida2.close();
cliente.close();
}
catch (UnknownHostException ex) {
ex.printStackTrace();
}
catch (ConnectException erro) {
JOptionPane.showMessageDialog(null, "O servidor não esta Disponível ou o Ip fornecido\n"
+" para Localizar o Servidor esta incorreto!!");
}
catch (Exception e){
e.printStackTrace();
}
}
}