天天看點

python設定并擷取預設的套接字逾時時間

  當需要處理socket庫某些屬性的預設值,例如套接字逾時時間。你可以建立一個套接字對象執行個體,調用settimeout()法設定一個逾時時間,在調用gettimeout()方法擷取預設的逾時時間。這種操作在開發伺服器應用時很有用。

技術點解析:

1、定義socket_timeout()函數,注意函數縮進格式。

2、socket庫中的類函數建立一個套接字對象 

使用socket.socket(socket.AF_INET,socket.SOCK_STREAM)首先建立了一個套接字對象socket() -- create a new socket object socket.AF_INET 套接字構造方法的第一個參數是位址族 ,socket.SOCK_STREAM 參數是套接字類型

3、套接字操作函數

gettimeout() 調用此函數擷取套接字逾時時間(參數使用的是秒數,也可以是 None 如果把逾時時間設為None,則禁用了套接字操作的逾時檢測)

settimeout() 調用此函數修改套接字逾時時間

這個方法在處理阻塞式套接字操作時使用

4、測試隻是為了驗證設定的時間而已

5、print列印輸入類型對應多列,是一一互相對應的

代碼如下:

1

2

3

4

5

6

7

<code>import</code> <code>socket</code>

<code>def test_socket_timeout():</code>

<code>    </code><code>s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)</code>

<code>    </code><code>print(</code><code>"Default socket timeout: %s"</code> <code>%s.gettimeout())</code>

<code>    </code><code>s.settimeout(100)</code>

<code>    </code><code>print(</code><code>"Current socket timeout: %s"</code> <code>%s.gettimeout())</code>

<code>test_socket_timeout()</code>

運作結果如下:

<a href="https://s2.51cto.com/wyfs02/M01/9E/9F/wKioL1mT-U_zI0x-AAA2jTygDfg850.jpg-wh_500x0-wm_3-wmp_4-s_574507804.jpg" target="_blank"></a>

本文轉自 yuri_cto 51CTO部落格,原文連結:http://blog.51cto.com/laobaiv1/1956800,如需轉載請自行聯系原作者