From 1de8f589216259f42ead0dddbc2954fae8e5e528 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Tue, 26 May 2009 13:24:55 +0200 Subject: logic for container plugins implemented, basic plugin now downloads files, RSDF plugin added --- module/socket/SocketServer.py | 59 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 module/socket/SocketServer.py (limited to 'module/socket') 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 -- cgit v1.2.3