webForumDet fria alternativet
Logga in / Bli medlem

Objekt skapas inte

Java

6 svar · 514 visningar · startad av arvjos

Medlem sedan juni 2002129 inlägg
Frågan#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 :)

270 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)