diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2009-05-26 13:24:55 +0200 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2009-05-26 13:24:55 +0200 |
commit | 1de8f589216259f42ead0dddbc2954fae8e5e528 (patch) | |
tree | 8c4ed7ba0c327730f794536ee7d7ab62b641255e /module/socket | |
parent | improved plugins (diff) | |
download | pyload-1de8f589216259f42ead0dddbc2954fae8e5e528.tar.xz |
logic for container plugins implemented, basic plugin now downloads files, RSDF plugin added
Diffstat (limited to 'module/socket')
-rw-r--r-- | module/socket/SocketServer.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/module/socket/SocketServer.py b/module/socket/SocketServer.py new file mode 100644 index 000000000..5466195e8 --- /dev/null +++ b/module/socket/SocketServer.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +# -'- coding: utf-8 -*. +""" +authored by: RaNaN + +This modul class handels all incoming and outgoing data between server and gui + +""" +import threading +import socket +import asyncore +import asynchat + +class ServerThread(threading.Thread): + + def __init__(self): + threading.Thread.__init__ (self) + self.server = MainServerSocket(7272) + + def run(self): + asyncore.loop() + + def stop(self): + asyncore.socket_map.clear() + self.server.close() + + +class MainServerSocket(asyncore.dispatcher): + def __init__(self, port): + print 'initing MSS' + asyncore.dispatcher.__init__(self) + self.create_socket(socket.AF_INET, socket.SOCK_STREAM) + self.bind(('',port)) + self.listen(5) + def handle_accept(self): + newSocket, address = self.accept() + print "Connected from", address + SecondaryServerSocket(newSocket) + def handle_close(self): + print "going to close" + self.close() + + + +class SecondaryServerSocket(asynchat.async_chat): + def __init__(self, *args): + print 'initing SSS' + asynchat.async_chat.__init__(self, *args) + self.set_terminator('\n') + self.data = [] + def collect_incoming_data(self, data): + self.data.append(data) + def found_terminator(self): + self.push(''.join(self.data)) + self.data = [] + #having fun with the data + def handle_close(self): + print "Disconnected from", self.getpeername() + self.close()
\ No newline at end of file |