Skip to content

Instantly share code, notes, and snippets.

@studiawan
Last active March 22, 2021 00:31
Show Gist options
  • Save studiawan/6930691 to your computer and use it in GitHub Desktop.
Save studiawan/6930691 to your computer and use it in GitHub Desktop.
Server with select module
import socket
import select
import sys
server_address = ('192.168.0.32', 5000)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(server_address)
server_socket.listen(5)
input_socket = [server_socket]
try:
while True:
read_ready, write_ready, exception = select.select(input_socket, [], [])
for sock in read_ready:
if sock == server_socket:
client_socket, client_address = server_socket.accept()
input_socket.append(client_socket)
else:
data = sock.recv(1024)
print(sock.getpeername(), data)
if data:
sock.send(data)
else:
sock.close()
input_socket.remove(sock)
except KeyboardInterrupt:
server_socket.close()
sys.exit(0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment