SORU
27 NİSAN 2010, Salı


Nasıl python'in soket al yöntemi zaman aşımı ayarlamak için?

Python soket al yöntemi zaman aşımı ayarlamak gerekiyor. Nasıl yapmalı?

CEVAP
27 NİSAN 2010, Salı


Tipik yaklaşım veri zaman aşımı oluşuncaya kadar mevcut ya kadar select() beklemek kullanmaktır. Sadece ara veri aslında mevcut olduğunda recv(). Güvenli olması için, biz de engellenmeyen modu recv() asla süresiz blok garanti etmek için yuva ayarlayın. select() Aynı anda birden fazla yuva beklemek için kullanılabilir.

import select

mysocket.setblocking(0)

ready = select.select([mysocket], [], [], timeout_in_seconds)
if ready[0]:
    data = mysocket.recv(4096)

Eğer Dosya Aç bir sürü varsa tanıtıcı, poll() select() için daha verimli bir alternatif.

Başka bir seçenek soket socket.settimeout(), ama açıkça bir cevap bu çözümü reddetti olduğunu görüyorum kullanarak tüm işlemleri için bir zaman aşımı süresi ayarlamak için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caina Mondo Zine

    Caina Mondo

    13 EKİM 2007
  • metallmanutza13

    metallmanutz

    13 NİSAN 2007
  • TimMinchinLive

    TimMinchinLi

    23 ŞUBAT 2009