Child pages
  • Swing , ServerSocket, Thread

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Sziasztok

 

Elnézést mindenkitől. Elég kezdő vagyok.

Van egy házi feladatom és elakadtam.

Egy X0 játékot csinálok, meg is van.

De mivel hálózaton kell neki működni vannak gondjaim.

Létrehozom a main-ben a ServerSocket-et, és ki rakom egy szálba az accept -el.

kb így:

XO Felulet = new XO();
Felulet.setVisible(true);

ServerSocket ss=null;

try {
    System.out.println("Létre hozom az ss -t");
    ss=new ServerSocket(lPort);
    System.out.println("Létre hozva az ss");
} catch (IOException ex) {
    Logger.getLogger(XO.class.getName()).log(Level.SEVERE, null, ex);
}


try {
    System.out.println("Következő sorban indul a szál");
    new Szal(ss.accept()).start();
    System.out.println("A szál elindult");

} catch (IOException ex) {
    Logger.getLogger(XO.class.getName()).log(Level.SEVERE, null, ex);
}

 

A gondom az, hogy a kiemelt sor-tól ki akad.

A Szal az egy belső osztály (alosztály) így kezdődik:

static class Szal extends Thread implements Runnable {

}

 

Az osztály már nem hívódik meg. A konstruktorába a System.out.println() már nem hívódik meg, illetve a JFrame -emen sem látszik semmi.

Azt értem, hogy az accept blokkolva tartja egy kliens kapcsolatig a szálat, DE miért nem látszik semmi a Swing-ben ?

Olyan mintha a thread nem is indulna. Próbáltam azt is hogy nem adok át semmit a Szal konstruktorába és ott indítom el a ServerSocket accept-et.

De minden maradt ugyanúgy.

Ha ki kommentelem a kiemelt sort akkor tökéletesen látszik, és működik minden a JFrame -en.

 

Kérnék egy kis út mutatást.

Köszönöm