summaryrefslogtreecommitdiff
path: root/socket_server.py
diff options
context:
space:
mode:
authorSimeon Simeonov2012-11-12 15:09:47 +0100
committerSimeon Simeonov2012-11-12 15:09:47 +0100
commitb1b484a0b93a5651da7d1ca20e77f70089b215bb (patch)
treee254c380eff988b97062c6e196f29b61f42eb705 /socket_server.py
bpynotify - started
Diffstat (limited to 'socket_server.py')
-rwxr-xr-xsocket_server.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/socket_server.py b/socket_server.py
new file mode 100755
index 0000000..7297d24
--- /dev/null
+++ b/socket_server.py
@@ -0,0 +1,67 @@
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4import SocketServer
5import sys
6
7from sqlalchemy import create_engine
8from sqlalchemy.orm import sessionmaker
9
10from bpynotify_orm import NotificationEntry
11
12
13class CustomSocketServer(SocketServer.TCPServer):
14
15 def __init__(self, server_address, RequestHandlerClass, session):
16 print "Done"
17 SocketServer.TCPServer.__init__(self,
18 server_address,
19 RequestHandlerClass)
20 self.session = session
21
22
23class MyTCPHandler(SocketServer.StreamRequestHandler):
24 """
25 The RequestHandler class for our server.
26
27 It is instantiated once per connection to the server, and must
28 override the handle() method to implement communication to the
29 client.
30 """
31
32 def handle(self):
33 # self.request is the TCP socket connected to the client
34 ##self.data = self.request.recv(1024).strip()
35 ##print "{} wrote:".format(self.client_address[0])
36 ##print self.data
37
38 self.data = self.rfile.readline().strip()
39
40 entry = NotificationEntry(unicode(self.data))
41 self.server.session.add(entry)
42 self.server.session.commit()
43
44
45def main():
46
47 HOST, PORT = "localhost", 9999
48
49 try:
50 engine = create_engine('sqlite:///notifications.db')
51 Session = sessionmaker(bind=engine) # bound session
52 session = Session()
53
54 server = CustomSocketServer((HOST, PORT), MyTCPHandler, session)
55 # Activate the server; this will keep running until you
56 # interrupt the program with Ctrl-C
57 server.serve_forever()
58
59 except Exception as e:
60 sys.stderr.write("Server error: {0}".format(e))
61 sys.exit(1)
62
63 sys.exit(0)
64
65
66if __name__ == "__main__":
67 main()