1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- """
- demeter tcp
- name:server.py
- author:rabin
- """
- import socket
- import time
- from demeter.core import *
- from tornado.tcpserver import TCPServer
- from tornado.ioloop import IOLoop
- class Connection(object):
- clients = set()
- def __init__(self, stream, address):
- Connection.clients.add(self)
- self._stream = stream
- self._address = address
- self._stream.set_close_callback(self.on_close)
- self.read_message()
-
- def read_message(self):
- self._stream.read_until('\n', self.broadcast_messages)
-
- def broadcast_messages(self, data):
- pub = Pub()
- temp = data.split(':')
- key = temp[0]
- value = temp[1]
- pub.push(key, value)
-
-
- """
- for conn in Connection.clients:
- conn.send_message(data)
- """
- self.read_message()
-
- def send_message(self, data):
- self._stream.write(data)
-
- def on_close(self):
-
- Connection.clients.remove(self)
-
- class Server(TCPServer):
- def handle_stream(self, stream, address):
-
- Connection(stream, address)
-
- class Client(object):
- HOST = '0.0.0.0'
- PORT = 8000
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((HOST, PORT))
-
- s.sendall('Hello, \nw')
- time.sleep(5)
- s.sendall('ord! \n')
-
- data = s.recv(1024)
-
- print 'Received', repr(data)
-
- time.sleep(60)
- s.close()
|