pyeventでecho
使い方わかんないとか言う人向けサンプル
(書きなぐりです)
import event import socket def read(sock): msg = sock.recv(1024) sock.send(msg) event.read(sock.fileno(), read, sock).add() def accept(sock): conn, addr = sock.accept() event.read(conn.fileno(), read, conn).add() event.read(server_sock.fileno(), accept, sock) server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_sock.bind(('localhost' , 6000)) server_sock.listen(10) event.read(server_sock.fileno(), accept, server_sock) while True: event.dispatch()
ノンブロッキングじゃないけど通知だけのサンプル。
signalとtimerはとりあえずスルー。
扱いがONESHOTなのかな。とりあえずイベント登録毎回する。
毎回登録してイベントを待つとクソ遅いので本来ならば
- まずノンブロッキングにする
- とりあえずreadとかやって返り値の番号を見てダメならイベント登録する
とかにする