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(); // <-- itt 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