def main(): global dzialaj # dzialaj zatrzymuje oba watki, ale wznawianie polaczenia ma trwac caly # czas while True: try: sock = MojSocket('192.168.1.12', 2314) #domowy #sock = MojSocket('192.168.0.4', 2314) # mieszkaniowy # tworzenie socketu musi byc tutaj ! ; ABY ZATRZYMAC PROGRAM PRZYTRZYMAJ ^C - # poleci excep w finally sock.stworz_serwer() sluchacz_thr = utworz_watek_sluchacza(sock) nadawacz_thr = utworz_watek_nadawacza(sock) sluchacz_thr.join() nadawacz_thr.join() except KeyboardInterrupt as err: logging.warning('keyboardInterrupt' + ' --> ' + repr(err)) break except Exception as err: logging.critical(' -- ' + repr(err)) # niestety nie mozna skorzystac z zalecenia i uzyc else, bo wyjatek # moze wystapic w trakcie czekania (join) na watek finally: dzialaj = False # chodzi o to by drugi watek spostrzegl dzialaj == False time.sleep(0.2) sock.zamknij()
def main(): pspnet.connectToAPCTL(1, cb) # rozkmin thr = utworz_jakis_watek() # rozkmin global dzialaj try: sock = MojSocket('192.168.1.12', 2314) sock.stworz_klienta() sluchacz_thr = utworz_watek_sluchacza(sock) nadawacz_thr = utworz_watek_nadawacza(sock) sluchacz_thr.join() nadawacz_thr.join() finally: dzialaj = False time.sleep(0.1) sock.zamknij() pspnet.disconnectAPCTL() # with lock?