0

How to set timeouts between connections using gevent.server in Python?

from gevent.server import StreamServer

def handle(socket, address):
        message = socket.recv(1024)

if __name__ == "__main__":
        server = StreamServer((SERVER_HOST, SERVER_PORT), handle) 
        server.serve_forever()

I want to make delay between connections, for example 1 second. And it will be good to make delay only between connections from one ip.

Thank you.

Snuff4uk
  • 61
  • 5

1 Answers1

0
from gevent.server import StreamServer
import gevent


lock = {}


def handle(socket, address):
    if address[0] in lock.keys():
        print "sleep"
        gevent.sleep(1)
        handle(socket, address)
    lock[address[0]] = 1
    try:
        message = socket.recv(1024)
        print address
    finally:
        del lock[address[0]]

if __name__ == "__main__":
    server = StreamServer(('0.0.0.0', 9999), handle) 
    server.serve_forever()
Anurag
  • 77
  • 9