Adam Koziolek Napisano Listopad 1, 2006 Zgłoś Share Napisano Listopad 1, 2006 WitamMam dwie aplikacje klient i serwer zbudowane w oparciu o komponenty Indy 9 (IdTCPClient i Server), klient napisany jest raczej dobrze (raczej ; ] ), gorzej z serwerem, który nie obsługuje wielu klientów (z jednym klientem sobie radzi) kombinowałem z AThread.Destroy (w zdarzeniu OnExecute), wówczas rzeczywiście na każdym kliencie wyświetli się komunikat, ale potem taki klient się sypie. Oto kod klienta i serwera:KLIENT:[delphi][/delphi]Ogólnie założenia są takie: 1). Do serwera łączy się wielu klientów jednocześnie;2) Po połączeniu klienta do serwera, wszyscy klienci w tle cały czas nasłuchują "poleceń" wydanych z serwera (nasłuchują w tle za pomoca timera), jeżeli serwer wyda "komunikat" o okreslonej treści (w przykładzie wyśle tekst call) wówczas klient wykona coś tam (w przykładzie po naciśnięciu buttona na serwerze na wszystkich klientach ma pojawić się komunikat);Próbuje próbuje i ciągle się krzaczy (działa tylko z jednym klientem, a zwieloma nie)Bardzo proszę o pomoc, wskazówki, tuning mojego kodu, aby sparwnie obsłużyć połączenie klient-serwer (a właściwie klienci-serwer).Z góry Dzięx Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Listopad 1, 2006 Zgłoś Share Napisano Listopad 1, 2006 Nie wiem czy dobrze Ciebie zrozumiałem... ale nie powinieneś zrobić czegoś w stylu: [code=Delphi] for i := 0 to IdTCPServer1.Connections.Count - 1 do IdTCPSerKX[WK]S [ ĘN [/code]? ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Adam Koziolek Napisano Listopad 1, 2006 Autor Zgłoś Share Napisano Listopad 1, 2006 IdTCPServer1.Connections niestety nie ma czegoś takiego (Indy 9)Co do zrozumienia, myślę że ten rysunek dokładnie wyjaśni o co chodzi (obraz wart więcej niż 1000 słów): Link do komentarza Udostępnij na innych stronach More sharing options...
krajew4 Napisano Listopad 1, 2006 Zgłoś Share Napisano Listopad 1, 2006 Ja ze swej strony moge dodac ze w czystym winsocku takie cos jest duzo latwiejsze do zrobienia ;] i nie trzeba uzywac zadnych komponentow My life for Aiur! Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Listopad 1, 2006 Zgłoś Share Napisano Listopad 1, 2006 Z Indy Demos (Chat): [code=Delphi] List := tcpServer.Threads.LockList; try for Count H[LHBCBYYXY FV56VE6ććV7Fw&FTĆ6rW6W@DEQĄĄ1%Ńm ŃtMŃ4(4(ąą4(tcpServer.Threads.UnlockList; end; [/code]A do obsługi socketów wolę TServerSocket i TClientSocket z ScktComp (chyba w standardzie) ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.