Server Tcp, serwer nie rozłącza się

0

Mam poniższy problem.
Client wymienia dane z serwerem, więc takie połączenie istnieje. Problem polega na tym gdy ubije program server tcp, to wątek dalej dla tego połączenia istnieje(program client dalej wymienia dane z serwerem) i nie mogę ponownie uruchomić serwera . W jaki sposób można go poprawnie zamykać?

0

nie ubijać serwera tylko go w cywilizowany sposób wyłączyć dbając o to aby serwer podczas zamykania zamknął wszystkie działające wątki

0

Jak można go w cywilizowany sposób wyłączyć?

1

Tak, by pozamykał wcześniej wszystkie wątki, poinformował klientów o tym, że idzie do aniołków itd.

No ale oczywiście nie zawsze się tak da (bo np. maszynę na której stoi trafi meteor), więc dobrze by było, żeby klient umiał interpretować dłuższy brak komunikacji z serwerem jako problemy tegoż i odpowiednio na to reagował. Szczegóły tutaj zależą oczywiście od tego, co to za serwer, co to za klient i czemu to wszystko służy.

0

Do obsługi połączenia korzystasz z modułu socket? Wysyłasz metodą send?
powinna zwracać ona błąd w przypadku problemu z połączeniem

    try:
        s.send(bytes('hello', 'UTF-8'))
    except socket.error, e:
        if e.errno == errno.ECONNRESET:
            # Handle disconnection -- close & reopen socket etc.
        else:
            # Other error, re-raise
            raise
0

timeout mam ustawiony, bo mam kilku użytkowników(clientów) np. 2minut i 5minut dla innego, i timeout odpadają. Nie moge sobie pozwolić na tak długi czas działania systemu. Będe musiał pomyśleć nad tym jeszcze.

Arthan chyba nie mogę tego użyć bo wtedy timeout do połączenia ustawione nie zadziałają chyba że się myle. Albo może jest sposób ustawienia timeout dla czytania ramek i wysyłania osobno.

spróbuje może z tym się uda



import atexit
def exit_handler():
   print ('My application is ending!')



atexit.register(exit_handler)

while True:
  print("test")


program screen uruchamia program w pythonie oraz też zrobiłem skrypt do kilowania screena. Może w tym jest problem po skilowaniu screena nie zamyka się wszystko

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