Objekt skapas inte

Java

6 svar · 527 visningar · startad av arvjos

Medlem sedan juni 2002129 inlägg
Trådstart#1

Har skrivit en liten enkel javachat med en applet som vi socket ansluter till en server. servern som rullar ser ut så här:

ServerSocket server = new ServerSocket (port);
		
while (true) 
{
       Socket client = server.accept ();
						
       ChatHandler c = new ChatHandler (client);
}

ChatHandler är sedan en klass som sköter sin klient. Den går igång som en separat tråd.

Allt funkar bra ett tag. Men helt plötsligt slutar servern att skapa nya ChatHandler objekt när någon ny ansluter. Jag har inte lyckats lista ut nåt system då detta händer utan det kan ske efter några minuter eller efter flera dagar. Det räcker då med att starta om serverprogrammet bara så rullar allt ett tag till sen...

Någon som har någon ide om vad det kan vara?

Tacksam för hjälp!

Medlem sedan maj 2003103 inlägg
#2

varför inte bara

new ChatHandler(client);

istället för ChatHandler c = new ChatHandler(client);

Medlem sedan juni 20008 205 inlägg
#3

Det skulle jag tvivla på hjälper (även om det funkar). Jag skulle gissa på att felet beror på att det någonstans kastas ett undantag som inte hanteras riktigt riktigt. Har du några satser i stil med catch(Exception e){} någonstans?

Medlem sedan juni 2002129 inlägg
#4

Ja det kan nog finnas i ChatHandler kankse. Vad ska jag göra istället?

Medlem sedan juni 20008 205 inlägg
#5

Tja, det beror på vad det är för exception som kastas. Är det ett IOException torde det betyda att klienten kopplat ner sig, och då borde man ju ta bort den socketen från listan av anslutningar. Det enklaste sättet att ta reda på varifrån undantaget kastas är att byta ut catch(Exception e){} mot catch(Exception e){ e.printStackTrace(); } så får du en fin stackutskrift på stderr när undantaget fångas.

Medlem sedan juni 2002129 inlägg
#6

Men det borde väl inte vara anledningen till att objekt av klassen inte skapas?

Medlem sedan juni 20008 205 inlägg
#7

Mja, om något inte är som det ska kan paja exekveringen på otippade ställen. Been there, done that, got the t-shirt :)

274 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)