#import Pymoult from pymoult.highlevel.listener import Listener from pymoult.threads import DSU_Thread #Initialize a simple ftp server authorizer = DummyAuthorizer() authorizer.add_anonymous(os.path.abspath("data")) handler = FTPHandler handler.authorizer = authorizer handler.banner = "Bruce" address = ('127.0.0.1', 2121) server = FTPServer(address, handler) server.max_cons = 256 server.max_cons_per_ip = 5 #Start Pymoult Listener listener = Listener() listener.start() def main(): server.serve_forever(timeout=0.5) mainThread = DSU_Thread(target=main, name="mainThread") mainThread.start()
#Testing failed alterability from pymoult.highlevel.managers import ThreadedManager from pymoult.threads import DSU_Thread from pymoult.highlevel.listener import Listener,log import time import threading import sys def func_v1(): log(0,"v1") def main(): for x in range(8): time.sleep(1) func_v1() thread = DSU_Thread(target=main,name="app") thread.start() manager = ThreadedManager(name="pymoult",threads=[thread]) manager.start() listener = Listener() listener.start() thread.join() manager.stop() listener.stop()
#/usr/bin/python-dsu3 from pymoult.threads import DSU_Thread from pymoult.highlevel.listener import Listener from pymoult.lowlevel.alterability import staticUpdatePoint import time def hello(): print("hello") def main(): while True: staticUpdatePoint() time.sleep(1) hello() thread = DSU_Thread(target=main,name="main") thread.start() listener = Listener() listener.start()
elif comm.startswith("login "): do_login(comm.lstrip("login").strip()) elif comm.startswith("logout"): do_logout(comm.lstrip("logout").strip()) elif comm.startswith("register "): do_register(comm.lstrip("register").strip()) def main_loop(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((hostname, port)) s.listen(max_connections) while True: #This is a safe point for updating staticUpdatePoint() conn, addr = s.accept() data = conn.recv(max_data_length) do_command(data.decode("ascii")) data = "" conn.close() if __name__ == "__main__": listener = Listener() listener.start() main_thread = DSU_Thread(name="main thread", target=main_loop) print("Starting server") main_thread.start() manager = ThreadedManager(threads=[main_thread]) manager.start()
from pymoult.highlevel.managers import ThreadedManager from pymoult.highlevel.listener import Listener from pymoult.lowlevel.alterability import staticUpdatePoint from pymoult.threads import DSU_Thread import time def tic(): print("tic") def tac(): print("tac") def main(): while True: staticUpdatePoint() time.sleep(1) tic() time.sleep(1) tac() manager = ThreadedManager(name='Manager') manager.start() listener = Listener() listener.start() thread = DSU_Thread(target=main) thread.start()
#Create a http server listening on localhost port 8080 #The server will use the self.Handler class to handle the clients requests httpd = HTTPServer(("", 8080), self.Handler) while True: staticUpdatePoint() httpd.handle_request() def main(): p1 = Page("banana", "Banana!", "A nice fruit. Allways bring one to parties") p2 = Page("coconut", "Coconut", "A fine coconut") p3 = Page("hello", "Hello World!", "Hello!") pages = [p1, p2, p3] ws = WebServer(pages) ws.run() #Listener listener = Listener() listener.start() #Setup the main thread main_thread = DSU_Thread(target=main) #Eager update manager for the Page class manager = ThreadedManager(name="global manager", threads=[main_thread]) manager.start() main_thread.start()