HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

UPS を入れてみた 象歩ブログ Zope-2.8.0-a2
09 April 2005

P2Pで将棋(の準備)

Python  

XMLRPC は難しいのかと思えば、 smallp2p など参考にすると意外に易しいのかも。 鯖立てるのは下記のようなコード server.py でとりあえず可能でした。

#!/usr/bin/env python
from SimpleXMLRPCServer import SimpleXMLRPCServer
import sys, socket

class RPCMethods:
    def next(self, s=''):
        print 'received:', s
        return 0

def main():
    sv = SimpleXMLRPCServer((socket.gethostname(), int(sys.argv[1])))
    sv.register_instance(RPCMethods())
    sv.serve_forever()
    
if __name__ == "__main__":
    main()

起動は

$ python server.py <ポート番号>


一方クライアント側のコード client.py はもっと簡単、

#!/usr/bin/env python
import sys, xmlrpclib

def main():
    peer = xmlrpclib.ServerProxy('http://' + sys.argv[1])
    s = raw_input('>>')
    while s:
        peer.next(unicode(s, 'euc_jp'))
        s = raw_input('>>')

if __name__ == "__main__":
    main()

下記コマンドで起動します。

$ python crient.py <鯖のURL:ポート番号>
これでクライアント側で入力した文字がサーバ側に表示されるはずです。

双方向にすれば、チャットのようなソフトができあがります。 たとえば将棋盤にくっつければ即P2P将棋が出来るはずです。 Zope鯖に組み込んでも面白そう。 Python のすごさを実感しました。

技術的にはありふれたもので、他所かに載ってそうなコードですが、 これは BBS での会話 の証拠のつもり。今の仕事を早く終わらせて、作ってみたいなーと現実から逃れてます。

Comments
There is no comment.
Trackbacks

【注意】TrackBack 送信なさる場合、 あなたの記事中に参照リンク (当ブログの URL 記述) が必要です。 トラックバックスパム防止のため、御了承ください。

There is no trackback.
Post a comment











一回プレビューして投稿内容の確認をしてください。その後に投稿可能になります。