def main(): task = Task(dict()) set_up_server() for ind in xrange(MAX_CON): sock = socket(AF_INET, SOCK_STREAM) con = Spin(sock) Client(con) xmap(con, CONNECT, on_connect) xmap(con, CONNECT_ERR, on_connect_err) con.connect_ex(('localhost', PORT)) def job(data, event, args, index=ind): base = data.setdefault(event, list()) base.append(('Con %s' % index, args[1])) return True task.gather(con, ('0', job), ('1', job), ('2', job), ('3', job), ('4', job), ('5', job), (CONNECT_ERR, lambda *args: True)) xmap(task, COMPLETE, done)
def on_connect(con): Stdin(con) Stdout(con) Shrug(con) xmap(con, FOUND, lambda con, data: spawn(con, data, data)) #xmap(con, FOUND, lambda con, data: sys.stdout.write('%s\n' % data)) print 'connected' task = Task(dict()) def job(data, event, args): base = data.setdefault(event, list()) base.append(args[1]) return True for ind in xrange(MAX_REQUEST): task.gather(con, ('%s' % ind, job)) xmap(task, COMPLETE, done)
con.dump("Host: %s\r\n" % url) con.dump("Connection: TE, close\r\n") con.dump("User-Agent: UntwistedDownload/1.0\r\n\r\n") def on_close(con, err, url): with open(url, "w") as fd: fd.write(con.accumulator.data) def done(task, data): raise Kill task = Task(dict()) xmap(task, COMPLETE, done) job = lambda data, event, args: True for ind in urls: con = Spin() Client(con) con.connect_ex((ind, 80)) xmap(con, CONNECT, on_connect, ind) xmap(con, CLOSE, lambda con, err: lose(con)) xmap(con, CLOSE, on_close, ind) xmap(con, CONNECT_ERR, lambda con, err: lose(con)) task.gather(con, (CLOSE, job), (CONNECT_ERR, job)) core.gear.mainloop()
con.dump('Host: %s\r\n' % url) con.dump('Connection: TE, close\r\n') con.dump('User-Agent: UntwistedDownload/1.0\r\n\r\n') def on_close(con, err, url): with open(url, 'w') as fd: fd.write(con.accumulator.data) def done(task, data): raise Kill task = Task(dict()) xmap(task, COMPLETE, done) job = lambda data, event, args: True for ind in urls: con = Spin() Client(con) con.connect_ex((ind, 80)) xmap(con, CONNECT, on_connect, ind) xmap(con, CLOSE, lambda con, err: lose(con)) xmap(con, CLOSE, on_close, ind) xmap(con, CONNECT_ERR, lambda con, err: lose(con)) task.gather(con, (CLOSE, job), (CONNECT_ERR, job)) core.gear.mainloop()