python socket disconnect
import select
import socket
ip = '127.0.0.1'
port = 80
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect((ip, port))
while True:
try:
ready_to_read, ready_to_write, in_error = \
select.select([conn,], [conn,], [], 5)
except select.error:
conn.shutdown(2) # 0 = done receiving, 1 = done sending, 2 = both
conn.close()
# connection error event here, maybe reconnect
print('connection error')
break
if len(ready_to_read) > 0:
recv = conn.recv(2048)
# do stuff with received data
print(f'received: {recv}')
if len(ready_to_write) > 0:
# connection established, send some stuff
conn.send('some stuff')