Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 219

Próbuję bezskutecznie połączyć się z localhostem.

Działam na Linuksie zarówno w terminalu, jak i na Eclipsie. Wyświetla błąd:

java.net.ConnectException: Połączenie odrzucone
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)

 

Fragment kodu:

try{
        
            Socket s = new Socket("127.0.0.1", 6437);
            
            InputStreamReader strReader = new InputStreamReader(s.getInputStream());
            BufferedReader reader = new BufferedReader(strReader);
            
            String doIt = reader.readLine();
            System.out.println(doIt);
            
            reader.close();
        } catch(IOException ex){ex.printStackTrace();}
    }

 

Po stronie serwera:

try{
        
            ServerSocket srvS = new ServerSocket(6437);
            
            while(true){
            
                Socket s = srvS.accept();
                
                PrintWriter writer = new PrintWriter(s.getOutputStream());
                String doIt = chDoIt();
               writer.println(doIt);
                writer.close();
                System.out.println(doIt);
                }
            } catch (IOException ex) {ex.printStackTrace();}
        }

 


Jestem żółtodziobem i nie bardzo wiem, w czym może tkwić błąd. W ping localhost jest 127.0.0.1 sprawdzałem, też wpisując inne porty TCP.

Arkadiusz_Bruderek
  • Zapytał
  • @ Arkadiusz_Bruderek | 15.04.2015
    • 3
    • 1
    • 0

Odpowiedź (1)

  • 0

Problem polegał na tym, że powinienem włączyć aplikację serwera w jednym terminalu, a dopiero później aplikację kliencką. W serwerach zewnętrznych, czy aplikacjach jak Apache, jest to logiczne, a w tym przypadku nie pomyślałem o tym i szukałem błędów w samym kodzie. Może się komuś początkującemu, tak jak ja, kiedyś przyda.

Arkadiusz_Bruderek
  • Odpowiedział
  • @ Arkadiusz_Bruderek | 17.04.2015
    • 3
    • 1
    • 0