Polaczenie Klient-Serwer Identyfikacja

0

Witam. Mam nastepujacy problem, pisze na socketach program typu klient-server. do serwa loguja sie klienci. Niech bedzie ich np. 12. Teraz pytanie nastepujace:
Jak rozpoznac ze klient nr 3 chce wymienic wiadomosc z klientem nr. 9?? w jaki sposob to zrealizowac? Mam record z klientami, gdzie jest pole WhoAmI -tu po polaczeniu zapisuje sie bierzacy numer klienta (zapis na serwerze)
User_Get.WhoAmI := Server_Data.Socket.ActiveConnections - 1;
Dzieki temu rozpoznaje osobe po numerze polaczenia. Niestety do momentu wylogowania sie 1 osoby - wtedy zaczyna sie wszystko sypac. Czy moze wie ktos w jaki sposob jest to rozwiazane w programach typu GG? Wie ktos jak sobie poradzic z takim problemem ??

0

Sam się zastanów - co się dzieje z chwilą wylogowania połączenia. Sprawdź jak się mają inne połączenia, czy przypadkiem nie następuje przesunięcie klientów. Łatwo stwierdzisz stan faktyczny, a potem albo musisz aktualizować strukturę danych (jeśli dawne połaczenie spod 7 jest teraz 6), albo stworzyć inną strukturę która sobie poradzi (np. listę na której będziesz trzymał obiekty o zalogowanych użytkownikach) logowanei i wylogowanie to dodaniei usunięcie elementu - wówczas pozycja na liście będize aktualnym numerem połączenia.
A co do łączenia kogoś z kimś - to już musisz obsłużyć w aplikacji, lub użyć komponentów profilowanych pod czaty

0

Cos juz wymyslilem ale nie obylo sie bez paru kaw, kartki i papieru. Swoja droga poszukalem po tym forum pod haslem 'identyfikacja' i znalazlem podobny temat. Nawet w przyzwoitym stopniu mi pomogl ale przydalo by sie moim znadniem zrobic artykuł - moze kiedys cos w tym stylu powstanie. W razie problemow bede pisal pod tym tematem wiec na razie prosze admina o jego niezamykanie, szkoda robic syf na forum

1 użytkowników online, w tym zalogowanych: 0, gości: 1