A sta se desi kad klijent neocekivano okine, npr nestane mu struja ili sama aplikacija/servis padnu. Po ovom algoritmu, klijent ostaje registrovan na serveru prakticno neograniceno dugo iako je naktivan.
Drugo, vidim da se stalno potencira to slanje lokalne IP adrese u payload-u. Za tim nema potrebe a i moze da napravi darmar. Za pocetak, ne mora uopste da se ukljucuje zato sto se ta informacija vec nalazi u IP frame-u paketa i dostupna je kroz socket kroz koji je paket stigao u aplication layer i moze se izvuci kroz socket API. Drugo, ako u payload ubacis AdressList[0] mozes da "pokvaris" mreznu komunikaciju svoje aplikacije ako je klijent multi-host masina. Kako?
Uzmi npr host sa adresom 192.168.1.100, njegova metrika na mreznoj kartici je recimo 10 (metrika odredjuje prioritet rutiranja ako ista ruta postoji na oba interfejsa). Sad ta masina napravi dial-up konekciju na internet i dobije drugu IP adresu, ovaj put sa metrikom 1. Primarna adresa masine sad postaje IP adresa dialup konekcije. Ti uzmes IP adresu iz AdressList[0], ubacis u payload i posaljes serveru na 192.168.1.1 i ona ga ubaci u listu pod IP adresom iz dialup-a klijenta

. U najgorem slucaju ce svi pokusaji server da komunicira sa klijentom propasti, a u najboljoj ce podaci stizati ali tako sto ce se rutirati preko pola drzav od ISP-a servera do dial-up ISP-a klijenta
Sa druge strane kad IP adresu uzimas iz IP frame-a onda je to IP adresa za koju postoji rutiranje (inace paket ne bi ni stigao) i bice 192.168.1.100 bez obzira na ostale hostove na masinama.
Moja preporuka je da koristis "beacon pattern" preko broadcast adrese za network discovery a standardnu TCP komunikaciju za razmenu podataka i komandi izmedju servera i klijenata. Beacon pattern se npr koristi (ali na mnogo nizem transportnom nivoue) u wireless mrezama za detekciju nodova. Ukratko pattern je sledeci:
Postoje dva UDP paketa, nazovimo ih "probe" i "acknowledge" i oba se salju i primaju preko istog porta na broadcast-u.
1. Klijent kad se podigne, pocne da osluskuje za "probe" pakete i onda posalje jedan "acknowledge" samoinicijativno. Posle toga cuti i ceka, i svaki put kad mu stigne "probe" paket, updatuje svoju referencu na server koristeci IP adresu posaljioca i sibne "acknowledge" u broadcast.
2. Server kad se podigne pocne da osluskuje za "acknowledge" pakete i sibne jedan "probe" paket. Posle toga, u odredjenim intervalima (recimo t=1s) posalje novi "probe". Kad dobije "acknowledge" za svaki od njih izvuce IP adresu posaljioca, i doda klijenta u svoju listu sa internim brojacem (recimo missedProbes) postavljenim na 0, ili ako IP adresa vec postoji u listi dekrementira njen missedProbes za jedan. Takodje, server svaki put kad posalje "probe" svim registrovanim klijentima u internoj listi inkrementira missedProbes za jedan i ako je missedProbes veci od recimo 10 (ili koliko hoces da bude), izbaci klijenta iz liste.
Ovaj sistem bukvalno moze da funkcionise neograniceno dugo i da serverska lista klijenata nikad nije vise od t*max(missedProbes) sekundi stara.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić