Eventletの使い方(サーバ版)
前回はクライアント版のプログラムで並列化されているのを確認したので、今度はサーバ側のプログラムを作成してみます。
サーバプログラム
import eventlet def handle(clientSock, clientAddr): data = clientSock.recv(1024).strip() clientSock.sendall(data) return if __name__ == "__main__": HOST, PORT = "localhost", 8080 sock = eventlet.listen(('0.0.0.0', 6000)) eventlet.serve(sock, handle)
前作成したTCPのサーバのプログラムとほぼ同じです。グリーンスレッドの処理などは全て抽象化されているため隠蔽されてしまい、ユーザがそれらを意識する必要はありません。
eventlet.serveとeventlet.spawnの違い
どちらも、グリーンスレッドを用いてリクエストに対する処理を行えます。ここによるとserveの方は引数としてhandleを使いますが、spawnの方は任意の関数と引数を使用できるようです。