webForumDet fria alternativet

Objekt skapas inte

6 svar · 514 visningar · startad av arvjos

arvjosMedlem sedan juni 2002131 inlägg
#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!

SkyMedlem sedan maj 200388 inlägg
#2

varför inte bara

new ChatHandler(client);

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

spangoMedlem sedan juni 20006 147 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?

arvjosMedlem sedan juni 2002131 inlägg
#4

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

spangoMedlem sedan juni 20006 147 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.

arvjosMedlem sedan juni 2002131 inlägg
#6

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

spangoMedlem sedan juni 20006 147 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 :)

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb