Servidor travando

0 respostas
M

E ai galera! blz! Minha dúvida e meu grande problema é o seguinte: é natural uma aplicação cliente/servidor usando socket deixar o servidor lento, mesmo tendo apenas um cliente conectado?? Minha aplicação envia datagrams para os clientes, porém quando eu conecto qualquer cliente na minha máquina servidor ela trava geral e mesmo quando eu fecho o cliente ela ainda fica travada. E agora qual é problema?? segue abaixo o código que conecta o cliente, vejam se eu estou erando em alguma coisa??
Falow’s e desde já agradeço!!

import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class Server extends JInternalFrame implements MessageListener{
  private JTextField enterField;
  private JTextArea displayArea,nickArea;
  private ObjectOutputStream output;
  private ObjectInputStream input;
  private ServerSocket server;
  private Socket connection;
  private final String MESSAGE_SEPARATOR = ">>>";

  public Server(){
    setTitle("Servidor");

    Container container= getContentPane();


    enterField= new JTextField();
    enterField.setEnabled(false);

    enterField.addActionListener(
       new ActionListener(){
          public void actionPerformed(ActionEvent e){
             messageReceived("wso",e.getActionCommand());
          }
       }
    );

    container.add(enterField, BorderLayout.NORTH);

    displayArea= new JTextArea();
    displayArea.setEditable(false);
    container.add(new JScrollPane(displayArea),BorderLayout.CENTER);

    nickArea= new JTextArea(10,10);
    nickArea.setEditable(false);
    nickArea.append("");
    container.add(new JScrollPane(nickArea),BorderLayout.EAST);
    
    
    setSize(300,150);

  }

  public void runServer(){
    try{
      server= new ServerSocket(5000,100);
      displayArea.append("Servidor conectando a porta 5000 ..." );
      while(true){
	      Socket clientSocket = server.accept();
        new ReceivingThread(this,clientSocket).start();

        System.out.println("O filha da mãe da máquina "+ clientSocket.getInetAddress() +" se conectou");

        enterField.setEnabled(true);
      }
    }

     catch(IOException ioException){
       ioException.printStackTrace();
     }
  }

  public void messageReceived(String from,String message){
     String completeMessage = from + MESSAGE_SEPARATOR + message;

     displayArea.append("\n" + from+MESSAGE_SEPARATOR+message);
     displayArea.setCaretPosition(displayArea.getText().length());

     new MulticastSendingThread(completeMessage.getBytes()).start();
  }

  public static void main(String args[]){
     Server application= new Server();
     application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     application.runServer();
  }
}
Criado 23 de maio de 2006
Respostas 0
Participantes 1