socketの置き換え
置き換えをサポートした。
socketモジュールとして動作する。
from mopenio.thread import threaded from mopenio.io import install_nio import socket install_nio() @threaded def handle_client(conn): data = conn.recv(8192) conn.send(data) conn.close() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost', 6000)) sock.listen(100) while True: conn, addr = sock.accept() handle_client(conn)
threaded部はいい案が重い浮かばなかった。
とりあえずsocketコンパチにする理由は
- 既存のコードをnio化する(プロトコルの再実装はめんどくさい)
だけ。
ただこれだとsocketが置き換えられっぱなしになるので
with non_bloking(True): #nioなsocketを使うコード ....
などでうまくclassbox的な感じにした方がいいかも知れないな。
withブロック間である程度ごにょれるコードが書けるようになったのでみんな2.6 に移行した方がいいと思うよ。