Cześć,
pracuje nad aplikacją klient-serwer. Każdy klient loguje się do serwera, serwer zapisuje jego dane w jakieś strukturze a w przypadku wylogowywania usuwa klienta ze struktury otrzymujac od klienta jego id.
Problem pojawia się w przypadku nagłego zerwania połączenia np przy ubiciu procesu klienta, nie zdazy on wtedy wyslac komunikatu o wylogowaniu. Zastanawiam się jak wychwycić ten moment i jak przyporządkować socket, który 'zgłosił' rozłączenie z danym klientem w strukturze.
Korzystam z pakietu lNet. Oczywiście w przypadku nagłego rozłączenia otrzymuje socket w metodzie OnDisconnect.
Znalazlem przy sockecie cos takiego jak GetHashCode. Pogooglowalem troche i okazalo sie ze moze on sluzyc odszukiwaniu wlasnie 'wlasciciela' pasujacego hasha w roznych strukturach.
Czy moge wykorzystac to wlasnie do takiego celu? Po prostu umieszcze jako Klucz w Dictionary wlasnie taki hash i w przypadku naglego rozlaczenia odszukam go i przeprowadze 'poprawne' wylogowanie.
Chcialbym sie tylko upewnic czy moj tok myslenia jest wlasciwy i czy powinienem wlasnie taka funkcjonalnosc wykorzystywac do tego celu? Do czego wlasciwie wykorzystuje sie takie funkcje? Czy poprawnie odkrylem przeznaczenia GetHashCode? :)
Oczywiscie przeprowadzilem wczesniej eksperyment i kazdy socket zwraca inny HashCode, pytanie tylko czy istnieje ryzyko, ze moze on sie powtorzyc u kilku klientow?
pozdrawiam!