Kezdőoldal » Számítástechnika » Programozás » Pythonban ha a socket kezelésh...

Pythonban ha a socket kezeléshez select-et használok, akkor ott mikor lesz írásra kész egy output socket?

Figyelt kérdés

Azt értem, hogy ha egy input listában lévő socketre üzenet érkezett, akkor a select nem blokkol tovább és továbbmegy a program. De ha az output-ra figyelt socket-ek folyamatosan készen állnak az írásra, akkor a select soha nem blokkol, mármint nem várakozik?


import select, socket

...

inputs = [mySocket1]

outputs = [mySocket2]

inputready,outputready,exceptready = select.select(inputs, outputs, [])



2018. szept. 13. 16:43
 1/3 anonim ***** válasza:

Nem.

"wlist: wait until ready for writing"

Tehát ha "ready for writing" akkor nem blokkol.

Forrás: [link]

Érdemes ezt a design-t timeouttal és while-al összekötni.

2018. szept. 13. 19:19
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

"Nem."

Ezt akkor arra írod, hogy nem blokkol, ugye? Tehát ha olyan socket-et figyel írásra, amit nem használok, akkor ott továbbmegy és visszaadja, hogy írható. Akkor ez azt jelenti, hogy az output listába csak olyan socket-et érdemes beletenni, amibe konkrétan írni akarok valamit? Vagyis első körben érdemes üresen hagyni.

2018. szept. 14. 19:10
 3/3 A kérdező kommentje:
..A timeout az rendben van, csak ha mondjuk folyton visszaadja az üres bufferű output socket-eket, akkor az már klasszikus polling lesz és zabálni fogja a CPU-t.(?)
2018. szept. 14. 19:12

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!