Ola , tenho uma conexão socket entre um cliente android e um servidor java e gostaria de saber o que tenho que fazer pra deixar meu servidor multi-thread.
Aqui a minha classe servidor:
[code]package com.sevidor;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.DataInputStream;
import java.io.Flushable;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
/**
*
*/
public class Servidor extends JFrame {
private static boolean executando = true ;
private static String mensagem;
private static final int PORTA = 1234;
public static String ip ;
public static int porta;
private static JTextArea status = new JTextArea();
public Servidor () {
// Define o t�tulo da janela
super ("FastRequest Servidor - BETA");
// TODO: handle exception
this.montaJanela ();
this.setDefaultCloseOperation(EXIT_ON_CLOSE); //fecha aplica��o quando clica no botao fechar do JFrame
this.setLocationRelativeTo(null);//centraliza o form
this.setBackground(Color.GRAY);
//Image img = Toolkit.getDefaultToolkit().getImage("servericone.png");
//etIconImage( img );
//ImageIcon icon = getIcon("servericone.png");
String plaf = "javax.swing.plaf.metal.MetalLookAndFeel";
try {
UIManager.setLookAndFeel(plaf);
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (UnsupportedLookAndFeelException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
SwingUtilities.updateComponentTreeUI(this);
}
private void montaJanela ()
{
this.getContentPane ().add (status);
}
public static void main(String[] args) {
Servidor janela = new Servidor();
janela.setSize (500, 180);
//janela.setUndecorated(true);
ImageIcon icone = new ImageIcon("E:\\ServidorJava\\Imagens\\servericone.png");
janela.setIconImage(icone.getImage());
janela.setVisible (true);
try {
ServerSocket server = new ServerSocket(1234);
InetAddress addr = InetAddress.getLocalHost();
System.out.println("----------- SERVIDOR CONECTADO "
+ addr.getHostAddress() + " PORTA " + PORTA
+ " -----------");
displayMessage("----------- SERVIDOR CONECTADO "
+ addr.getHostAddress() + " PORTA " + PORTA
+ " -----------");
//JOptionPane.showMessageDialog(null, "Servidor conectado IP :"+addr.getHostAddress()+" Porta :"+PORTA);
System.out.println("Esperando Conexoes.");
displayMessage("\nEsperando Conexoes.");
Socket socket = server.accept();
System.out.println("Sevidor-> Conectou Ip "
+ socket.getInetAddress().getHostAddress());
displayMessage("\nSevidor-> Conectou Ip "
+ socket.getInetAddress().getHostAddress());
DataInputStream in = new DataInputStream(socket.getInputStream());
try {
while (executando) {
executando=true;
int i = 1;
i++;
mensagem = in.readUTF();
String login[] = new String[2];
login = mensagem.split("#");
System.out.println("Servidor-> Recebeu Nome : "
+login[0] );
displayMessage("\nServidor -> Recebeu Nome : "+login[0]);
System.out.println("Servidor-> Recebeu Mesa : "
+ login[1] );
displayMessage("\nServidor -> Recebeu Mesa : "+login[1]);
System.out.println("Servidor -> Recebeu Pedido :"
+ login[2]);
displayMessage("\nServidor -> Recebeu Pedido : "+login[2]);
displayMessage("\nServidor ------> Pedido Finalizado ");
displayMessage(" ");
}
System.out.println("Servidor-> Finalizado.");
displayMessage("\nServidor-> Finalizado.");
in.close();
socket.close();
server.close();
} catch (Exception e) {
System.err.println("Servidor-> Erro: " + e.getMessage());
executando = false;
}
}
catch (Exception e) {
e.printStackTrace();
}
}
private static void displayMessage(final String texto) {
SwingUtilities.invokeLater(
new Runnable(){
public void run(){
status.append(texto);
}
}
);
}
}[/code]
Obrigado.