示例#1
0
文件: serve.py 项目: dhain/webskewer
 def accept_ssl(sock, application, cert, verify=None, timeout=None):
     with closing(sock):
         while True:
             client, addr = greennet.accept(sock)
             try:
                 client = greennet.ssl.accept(client, cert, verify, timeout)
             except greennet.Timeout:
                 client.close()
                 continue
             greennet.schedule(greenlet(handle_connection), client, application, True)
示例#2
0
文件: serve.py 项目: dhain/webskewer
def accept_connections(sock, application):
    with closing(sock):
        while True:
            client, addr = greennet.accept(sock)
            greennet.schedule(greenlet(handle_connection), client, application)
示例#3
0
文件: echo.py 项目: dhain/greennet
from __future__ import with_statement
from contextlib import closing
import socket

from py.magic import greenlet

import greennet


def echo(sock):
    with closing(sock):
        bufsize = sock.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
        while True:
            data = greennet.recv(sock, bufsize)
            if not data:
                break
            greennet.sendall(sock, data)


if __name__ == '__main__':
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('', 1234))
    sock.listen(socket.SOMAXCONN)
    with closing(sock):
        while True:
            client, addr = greennet.accept(sock)
            greennet.schedule(greenlet(echo), client)