##// END OF EJS Templates
use pyzmq tools where appropriate...
use pyzmq tools where appropriate ZMQStream is the right object to use for event-driven handling of messages, but instead we chose to rewrite half of it in KernelManager. This removes most of the duplicate code, in favor of using ZMQStream. also use the pyzmq install() function for using pyzmq with tornado, instead of manually pasting its contents in notebook app.

File last commit:

r4872:34c10438
r5377:4b348626
Show More
ipy_server.py
37 lines | 1023 B | text/x-python | PythonLexer
""" Simple TCP socket server that executes statements in IPython instance.
Usage:
import ipy_server
ipy_server.serve_thread(16455)
Now, to execute the statements in this ipython instance, open a TCP socket
(port 16455), write out the statements, and close the socket.
You can use e.g. "telnet localhost 16455" or a script to do this.
This is a bit like 'M-x server-start" or gnuserv in the emacs world.
"""
from IPython.core import ipapi
ip = ipapi.get()
import SocketServer
# user-accessible port
PORT = 8099
class IPythonRequestHandler(SocketServer.StreamRequestHandler):
def handle(self):
#print "connection from", self.client_address
inp = self.rfile.read().replace('\r\n','\n')
#print "Execute",inp
ip.runlines(inp)
def serve(port = PORT):
server = SocketServer.TCPServer(("", port), IPythonRequestHandler)
print "ipy_server on TCP port", port
server.serve_forever()
def serve_thread(port = PORT):
import thread
thread.start_new_thread(serve, (port,))