Pessoal, a negócio tá brabo…
Dêem uma olhada…
Tenho uma aplicação que está utilizando Sockets de Cliente e Servidor, só que na mesma janela, abaixo tem uma foto pra ilustrar o que digo…

nesses campos onde tem porta e IP não está sendo usado no momento. O aplicativo tem de receber algo na caixa de texto e jogar no textArea acima.
Daí na aplicação, eu tenho de startar o servidor junto com o cliente, isso é feito nesse código aqui:
package msn.telas;
import Fluxo.Cliente;
import Fluxo.Servidor;
public class TelaCliente extends javax.swing.JFrame {
private int porta = 0;
private int ip = 0;
private Cliente cliente;
public TelaCliente() { // no construtor, starto o servidor e cliente.
initComponents();
this.setVisible(true);
this.setSize(400,350);
this.setLocation(90,20);
Servidor s = new Servidor(5000,0,this.jTextArea1);
System.out.println("Instanciando Servidor na classe TelaCliente.");
System.out.println("Instanciando Cliente na classe TelaCliente.");
cliente = new Cliente("127.0.0.1",5000);
System.out.println("Executando o método 'runServidor()'");
s.runServidor();
}
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked
cliente.runCliente(jTextField3.getText()); //esse botão dispara o método que irá mandar a mensagem.
}
public static void main(String args[]){
System.out.println("Criando tela do cliente.");
new TelaCliente().setVisible(true);
}
}
Esse é meu Cliente:
package Fluxo;
import java.io.*;
import java.net.*;
import java.util.Scanner;
import msn.telas.*;
public class Cliente {
private String mensagem;
private DataOutputStream saida;
private DataInputStream entrada;
private Socket cliente;
private TelaCliente telacliente;
public Cliente(String IP, int porta) {
try{
cliente = new Socket(InetAddress.getByName(IP), porta);
}catch (EOFException eof) {
System.out.println("\nConexao finalizada com servidor - erro \n");
eof.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
public void runCliente(String msg){
try {
System.out.println("Iniciando o método 'runCliente(String msg').");
saida = new DataOutputStream (cliente.getOutputStream());
saida.flush();
try{
System.out.println("Enviando mensagem...");
saida.writeUTF(msg);
saida.flush();
}catch (Exception cnfex) {
System.out.println( "\n Objeto de conexao desconhecido\n");
}
System.out.println("Fechando conexão cliente.");
saida.close();
cliente.close();
}catch (EOFException eof) {
System.out.println("\nConexao finalizada com servidor\n");
}catch (IOException e) {
e.printStackTrace();
}
}
}
E meu Servidor:
package Fluxo;
import java.io.*;
import java.net.*;
import java.util.Scanner;
import javax.swing.JTextArea;
import msn.telas.TelaServidor;
import msn.telas.TelaCliente;
public class Servidor {
private ServerSocket servidor;
private Socket connection;
private int contador=1;
private String mensagem;
private DataOutputStream saida;
private DataInputStream entrada;
private JTextArea jt;
public Servidor(int porta, int tamFila, JTextArea jt) {
try{
this.jt = jt;
servidor = new ServerSocket(porta, tamFila);
}catch (EOFException eof) {
System.out.println("\n Erro de conexao com o cliente\n");
eof.printStackTrace();
}catch (IOException io) {
io.printStackTrace();
}
}
public void runServidor(){
try{
while( true ){
connection = servidor.accept();
entrada = new DataInputStream(connection.getInputStream());
System.out.println("Conexão recebida.");
try{
mensagem = jt.getText(); //aqui deveria aparecer a mensagem e posteriormente escreve-la no System.out.
jt.setText(mensagem);
System.out.println("Mensagem : " + mensagem);
}catch (Exception cnfex) {
System.out.println("\n Objeto redebido desconhecido - ERRO!!");
}
}
}catch (EOFException eof){
System.out.println("FIM DE CONEXAO COM CLIENTE ");
}catch (IOException io) {
io.printStackTrace();
}
}
}
Só que não tá fazendo certo, poderiam me ajudar…?
