我们从Python开源项目中,提取了以下27个代码示例,用于说明如何使用gevent.socket.makefile()。
def __init__(self, socket, address, server, rfile=None): self.socket = socket self.client_address = address self.server = server if rfile is None: self.rfile = socket.makefile('rb', -1) else: self.rfile = rfile
def wfile(self): # DEPRECATED, UNTESTED, TO BE REMOVED wfile = getattr(self, '_wfile', None) if wfile is None: wfile = self._wfile = self.socket.makefile('wb', 0) return wfile
def __init__(self, socket, address, server, rfile=None): # Deprecation: The rfile kwarg was introduced in 1.0a1 as part # of a refactoring. It was never documented or used. It is # considered DEPRECATED and may be removed in the future. Its # use is not supported. self.socket = socket self.client_address = address self.server = server if rfile is None: self.rfile = socket.makefile('rb', -1) else: self.rfile = rfile
def __init__(self, sock, address, server, rfile=None): # Deprecation: The rfile kwarg was introduced in 1.0a1 as part # of a refactoring. It was never documented or used. It is # considered DEPRECATED and may be removed in the future. Its # use is not supported. self.socket = sock self.client_address = address self.server = server if rfile is None: self.rfile = sock.makefile('rb', -1) else: self.rfile = rfile
def connect(self): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.settimeout(self.timeout) self.sock.connect((self.host, self.port)) self.sock.settimeout(None) self.sockfd = self.sock.makefile() self.closed = False
def __init__(self, socket, address, connect_timeout=5): inactivity_timeout = 3600 self.sock = socket # safe guard inactivity timeout self.sock.settimeout(inactivity_timeout) self.sockfd = socket.makefile() self.address = address self.timeout = connect_timeout self.closed = False
def _do_read(self, length=None, use_readline=False): if use_readline: reader = self.rfile.readline else: reader = self.rfile.read content_length = self.content_length if content_length is None: # Either Content-Length or "Transfer-Encoding: chunked" must be present in a request with a body # if it was chunked, then this function would have not been called return b'' self._send_100_continue() left = content_length - self.position if length is None: length = left elif length > left: length = left if not length: return b'' # On Python 2, self.rfile is usually socket.makefile(), which # uses cStringIO.StringIO. If *length* is greater than the C # sizeof(int) (typically 32 bits signed), parsing the argument to # readline raises OverflowError. StringIO.read(), OTOH, uses # PySize_t, typically a long (64 bits). In a bare readline() # case, because the header lines we're trying to read with # readline are typically expected to be small, we can correct # that failure by simply doing a smaller call to readline and # appending; failures in read we let propagate. try: read = reader(length) except OverflowError: if not use_readline: # Expecting to read more than 64 bits of data. Ouch! raise # We could loop on calls to smaller readline(), appending them # until we actually get a newline. For uses in this module, # we expect the actual length to be small, but WSGI applications # are allowed to pass in an arbitrary length. (This loop isn't optimal, # but even client applications *probably* have short lines.) read = b'' while len(read) < length and not read.endswith(b'\n'): read += reader(MAX_REQUEST_LINE) self.position += len(read) if len(read) < length: if (use_readline and not read.endswith(b"\n")) or not use_readline: raise IOError("unexpected end of file while reading request at position %s" % (self.position,)) return read