👋
【Python】select で HTTP/1 クライアントをつくる
import socket
import select
HOST = '0.0.0.0'
PORT = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setblocking(False)
s.sendall(b"GET / HTTP/1.1\r\n\r\n")
socket_list = [s]
while True:
read, write, error = select.select(
socket_list, [], [])
for sock in read:
if sock == s:
data = sock.recv(1024)
if data:
print(data.decode())
else:
read.remove(sock)
break
if len(read) == 0:
break
s.close()
Discussion