3784495652

3784495652



wątku. W przypadku tej pracy uniemożliwiałoby to zatrzymanie programu przez użytkownika.

2.3.2. Gniazda nieblokujące

W celu przeciwdziałania wadom gniazd blokujących można skorzystać z gniazd nie-blokujących. Python udostępnia wiele mechanizmów do obsługi zarówno blokujących jak i nieblokujących gniazd. W tej pracy wykorzystane zostały dwa.

Pierwszym sposobem jest skorzystanie z metody setblocking(). Przykład:

sock = socket.socket(socket.af_inet, socket.sock_dgram) sock.bind((ip,port)) sock.setblocki ng(0)

W powyższym przypadku wywołanie metody recvfrom() w przypadku, gdy w buforze będą znajdowały się dane do odczytania da taki sam efekt jak w przypadku gniazd blokujących. Jednak w przypadku, gdy bufor będzie pusty, metoda ta zwróci wyjątek, które następnie może być obsłużony, a program będzie mógł spróbować odczytać dane w późniejszym czasie.

Kolejnym sposobem jest skorzystanie z metody select(). Przykład: ready_sockets = select.select([sock], [sock], [sock], 0.1) if (len(ready_sockets[2]) > 0):

#wystąpił błąd, tutaj obsługa błędów elif (len(ready_sockets[l]) > 0):

#gniazdo gotowe do wysłania danych elif (len(ready_sockets[0]) > 0):

#gniazdo gotowe do odczytu data, addr = sock.recvfrom(1024)

Metoda select() przyjmuje 4 argumenty. Pierwszym argumentem jest tablica zawierająca gniazda, które będą sprawdzane pod kątem gotowości do odczytu, drugim argumentem jest tablica, zawierająca gniazda, które będą sprawdzane pod kątem gotowości do zapisu, trzecim argumentem jest tablica, zawierająca gniazda, które będą sprawdzane pod kątem błędów, natomiast ostatnim argumentem jest maksymalny czas oczekiwania (timeo-ut).

11



Wyszukiwarka

Podobne podstrony:
SDC13471 19 Istotę stosowanej w tej pracy metody opisu stanowi porównanie. Przez porównanie, czyli z
Lęk przed biblioteką. 71 Może to być wykorzystane przez użytkowników do odświeżenia wiadomości o
Untitled03 Książka poświęcona jest mikrokontrolerom, programowalnym przez użytkownika mikrokomputero
Po podaniu nazwy programu przez użytkownika, w pierwszej kolejności przeszukiwany będzie dysk
Opis przypadku Próba pracy TREŚCI PROGRAMOWE POSZCZEGÓLNYCH
W porównaniu do logistyki zaopatrzenia, to w przypadku logistyki powtórnego zagospodarowania w przyp
Zaliczenie wstępne Opis przypadku Próba pracy TREŚCI PROGRAMOWE POSZCZEGÓLNYCH ZAJĘĆ 1
img280 nowieniem wykonania tej pracy w domu dla rodziny. To już dążenie do tego, by stać się użytecz
M09 Wyłączenie pompy z chłodziwem M00 Zatrzymanie programu Wpisanie w blok tej funkcji spowoduje
M a t e m a t k a k r o k p o k r o k u I Page 01 (16) FM PDF To Image Converter ProUnregis
img273 je to nauczycielkę w określonych przypadkach do pracy indywidualnej metodą pokazu, z jednocze
12 5 BagMaimu Żytko architektury. To oaywiatc. Ale z drugłcj Mroef
sanktuariasłowiań049 Czy i na ile lo nam się uda, odpowiedzą na to następne strony tej pracy. Długa
19 Inżynierowie nowej ery tej aplikacji jest współpraca z wieloma programami typu CAD. Jest to ważne

więcej podobnych podstron