summaryrefslogtreecommitdiffstats
path: root/module/socket
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2009-05-26 13:24:55 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2009-05-26 13:24:55 +0200
commit1de8f589216259f42ead0dddbc2954fae8e5e528 (patch)
tree8c4ed7ba0c327730f794536ee7d7ab62b641255e /module/socket
parentimproved plugins (diff)
downloadpyload-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.py59
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