[RESOLVIDO] Ajuda para Amador: Interface abre, mas server nao funciona. Onde errei?

Olá, estou tentando adaptar o código de um server que fiz para tratamento de arquivos para uma interface java.
Ja fiz a interface, mas quando rodo o app a interface carrega mas o server nao funciona.

Segue código + erros:

package ...;

imports.. 

public class jFServer extends javax.swing.JFrame {
    
       
    @SuppressWarnings("unchecked")
      private void initComponents() {
       //declaração de objetos
      pack();
    }             

                              

 
    static String dirPedPen = "A:/Android/PedidosPendentes/";
    static String dirPedCon = "A:/Android/PedidosConcluidos/";
    static String dirPedAnd = "A:/Android/PedidosAndamento/";
    final String conteudo = "";
    private static int porta = 9191;
    private ServerSocket superserver;
    
       public jFServer()
    {
        initComponents();
    	try 
    		{
    		superserver = new ServerSocket(porta);
    		} 
    	catch (IOException e)
    		{
    		e.printStackTrace();
    		}
    }
    
        
                
    public static void main(String args[]) 
    {  
             java.awt.EventQueue.invokeLater(new Runnable() {

           @Override
           public void run() {
                
               new jFServer().setVisible(true);
               jFServer server = new jFServer();
                server.levantaConexao();
                
                
                
            }
        });
    }
 
public void levantaConexao()
{
	System.out.println("Esperando por clientes...");
	while (true)
	{
		try
		{
			Socket socket = superserver.accept();
			new ConnectionHandler (socket);
		}
		catch (IOException e)
		{
			e.printStackTrace();			
		}
	}
}

class ConnectionHandler implements Runnable
{
	private Socket socket;
	public ConnectionHandler(Socket socket)
	{
		this.socket = socket;
		Thread t = new Thread(this);
		t.start();
	}
        @Override
	public void run()
	{
		try
		{
                 //meu código
		}
	}
}
	        

      
 
    
    // declaração de variáveis             
    private ...
    // final da declaração de variáveis          
}

aqui os erros


java.net.BindException: Address already in use: JVM_Bind
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
	at java.net.ServerSocket.bind(ServerSocket.java:328)
	at java.net.ServerSocket.<init>(ServerSocket.java:194)
	at java.net.ServerSocket.<init>(ServerSocket.java:106)
	at servidor.jFServer.<init>(jFServer.java:226)                                     -->> superserver = new ServerSocket(porta);
	at servidor.jFServer$8.run(jFServer.java:244)                                     -->>  jFServer server = new jFServer();
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at servidor.jFServer.levantaConexao(jFServer.java:260)                        -->> Socket socket = superserver.accept();
	at servidor.jFServer$8.run(jFServer.java:245)                                       -->>  server.levantaConexao();
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
Esperando por clientes...
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

pra vcs deve ser piada, mas sou iniciante nessa parte de swing… entao realmente não sei o que fazer no momento.
se possivel ajudem, caso contrario com mto estudo ainda chego la, só vou demorar um pouco mais…
abraços a todos

[quote=marcelo.lorini]Olá, estou tentando adaptar o código de um server que fiz para tratamento de arquivos para uma interface java.
Ja fiz a interface, mas quando rodo o app a interface carrega mas o server nao funciona.

Segue código + erros:

package ...;

imports.. 

public class jFServer extends javax.swing.JFrame {
    
       
    @SuppressWarnings("unchecked")
      private void initComponents() {
       //declaração de objetos
      pack();
    }             

                              

 
    static String dirPedPen = "A:/Android/PedidosPendentes/";
    static String dirPedCon = "A:/Android/PedidosConcluidos/";
    static String dirPedAnd = "A:/Android/PedidosAndamento/";
    final String conteudo = "";
    private static int porta = 9191;
    private ServerSocket superserver;
    
       public jFServer()
    {
        initComponents();
    	try 
    		{
    		superserver = new ServerSocket(porta);
    		} 
    	catch (IOException e)
    		{
    		e.printStackTrace();
    		}
    }
    
        
                
    public static void main(String args[]) 
    {  
             java.awt.EventQueue.invokeLater(new Runnable() {

           @Override
           public void run() {
                
               new jFServer().setVisible(true);
               jFServer server = new jFServer();
                server.levantaConexao();
                
                
                
            }
        });
    }
 
public void levantaConexao()
{
	System.out.println("Esperando por clientes...");
	while (true)
	{
		try
		{
			Socket socket = superserver.accept();
			new ConnectionHandler (socket);
		}
		catch (IOException e)
		{
			e.printStackTrace();			
		}
	}
}

class ConnectionHandler implements Runnable
{
	private Socket socket;
	public ConnectionHandler(Socket socket)
	{
		this.socket = socket;
		Thread t = new Thread(this);
		t.start();
	}
        @Override
	public void run()
	{
		try
		{
                 //meu código
		}
	}
}
	        

      
 
    
    // declaração de variáveis             
    private ...
    // final da declaração de variáveis          
}

aqui os erros


java.net.BindException: Address already in use: JVM_Bind
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
	at java.net.ServerSocket.bind(ServerSocket.java:328)
	at java.net.ServerSocket.<init>(ServerSocket.java:194)
	at java.net.ServerSocket.<init>(ServerSocket.java:106)
	at servidor.jFServer.<init>(jFServer.java:226)                                     -->> superserver = new ServerSocket(porta);
	at servidor.jFServer$8.run(jFServer.java:244)                                     -->>  jFServer server = new jFServer();
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at servidor.jFServer.levantaConexao(jFServer.java:260)                        -->> Socket socket = superserver.accept();
	at servidor.jFServer$8.run(jFServer.java:245)                                       -->>  server.levantaConexao();
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
Esperando por clientes...
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

pra vcs deve ser piada, mas sou iniciante nessa parte de swing… entao realmente não sei o que fazer no momento.
se possivel ajudem, caso contrario com mto estudo ainda chego la, só vou demorar um pouco mais…
abraços a todos[/quote]

os erros nem são relacionados a swing, esta mais para lógica mesmo, repare no main:

new jFServer().setVisible(true);
jFServer server = new jFServer();
server.levantaConexao();

você está instanciando duas vezes sua classe, sendo que no método construtor você abre um serversocket numa porta fixa.

da segunda vez vai dar erro por que a porta ja está sendo usada (BindException).

mude isso dai para

           jFServer server = new jFServer();  
            server.setVisible(true); 
            server.levantaConexao();  

e ve se funciona…

muito obrigado pela dica [ maior_abandonado ]
mas enquanto espera auxilio refiz grande parte do código e agora ele está rodando e fazendo o que tem q fazer.

Tenho outras dúvidas ainda, mas referente a este tópico já estão sanadas.

[RESOLVIDO]