[Sockets] W jaki sposób odłączyć klienta?

Odpowiedz Nowy wątek
2006-10-30 20:33
Smok___
0

Używam komponentów TServerSocket i TClientSocket. Dwie różne aplikacje.

Mój problem polega na tym, że chcę w pewnych okolicznościach (serwerem) zamknąć połączenie z konkretnym klientem.

[delphi]
ServerSocket1.Socket.Connections[n].Close;
[/delphi]

Wszystko wydaje się fajnie, ale w momencie gdy przychodzi nowe połączenie (po odłączeniu) - serwer generuje błąd. Doszedłem do wniosku, że winą jest gniazdo, które zostało zamknięte (bo w końcu to kazałem zrobić), a do którego chcę podpiąć kolejnego klienta.

Moje pytanie więc brzmi następująco: W jaki sposób odłączyć klienta, aby gniazdo pozostało gotowe do użycia dla następnych klientów, ewentualnie w jaki sposób otworzyć je po zamknięciu.

Domyślam się, że chodzi o użycie procedury Listen, jednak nie mam pomysłu jakie parametry wpisać: Name, Address, Service ani Queue Size nic mi nie mówią.

Czy ktoś może mi podsunąć jakieś rozwiązanie?

Pozostało 580 znaków

2006-10-30 21:23
mariusz24999
0

http://www.unit1.pl/127,35,podglad.html

Pozostało 580 znaków

2006-10-30 21:37
Smok___
0

Świetnie, świetnie. Tyle, że nie na temat.

Pozostało 580 znaków

2006-10-30 22:22
Smok___
0

ServerSocket1.Socket.Connection[0].Close;

Jest poprawne. Błąd musi być gdzieś indziej.

Pozostało 580 znaków

2006-11-05 15:17
User
0

Z tego co wiem rozlacza klienta sie funkcja Dissconnect a nie Close. Byc moze obie funkcje powoduja w efekcie zerwanie polaczenia ale tylko jedna pozwala na dalsza prace na tym gniezdzie.

Pozostało 580 znaków

2006-11-05 15:48
0

Każde połączenie ma osobny deskryptor gniazda, tak więc jego zamknięcie nie powoduje utraty możliwości podłączania się nowych klientów (gniazdo nasłuchujące także posiada osobny deskryptor). Sprawdź debuggerem w której dokładnie linii Twój program generuje błąd.


Nowe pomysły są inną kombinacją starych elementów. Nie ma nowych elementów. Są tylko nowe kombinacje.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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