pythonをソケットから使う

pythonをソケットから使えるようにしてみた


http://d.hatena.ne.jp/niitsuma/20080328/1242595553

使い方 概要

ソケットにjson-rpc形式の文字列を流し込むと処理結果がjson形式でかえってくる

$ echo  "{\"method\": \"numpy.linalg.norm\", \"params\": [[2,2]], \"id\": 0}" | netcat localhost 31415
{"result": 2.8284271247461903, "error": null, "id": 0}

ちなみに foo.bar という関数を呼ぶと自動的にimport fooされるようになってます

使い方 詳細

ソケットをうけとるpythonのプロセスを起動する

$ python 
import jsonrpcdirect as JD
server = JD.Server( JD.JsonRpc10(), JD.TransportTcpIp(addr=("127.0.0.1",31415), logfunc=JD.log_stdout))
server.serve() 

違うターミナルに移動して

$ netcat localhost 31415
{"method": "numpy.linalg.norm", "params": [[2,2]], "id": 0}

と入力すると

{"result": 2.8284271247461903, "error": null, "id": 0}

という文字列がかえってくる

Install

simplejsonとnumpyをinstallした後
http://www2s.biglobe.ne.jp/~niitsuma/jsonrpcdirect06.tar.gz
をダウンロードして解凍
解凍したディレクトリに移動して
python setup.py install