def _make_socket(self): '''Make and wrap the socket with an IOStream.''' host, port = self._original_address family, self._resolved_address = yield self._resolver.resolve( host, port) self._socket = socket.socket(family, socket.SOCK_STREAM) _logger.debug('Socket to {0}/{1}.'.format(family, self._resolved_address)) if self._params.bind_address: _logger.debug('Binding socket to {0}'.format( self._params.bind_address)) self._socket.bind(self._params.bind_address) if self._ssl: self._io_stream = SSLIOStream( self._socket, max_buffer_size=self._params.buffer_size, rw_timeout=self._params.read_timeout, ssl_options=self._params.ssl_options or {}, server_hostname=host, ) else: self._io_stream = IOStream( self._socket, rw_timeout=self._params.read_timeout, max_buffer_size=self._params.buffer_size, ) self._io_stream.set_close_callback(self._stream_closed_callback)
def test_basic(self): socket_obj = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) stream = IOStream(socket_obj) yield stream.connect(('127.0.0.1', self.get_http_port())) yield stream.write(b'GET / HTTP/1.0\r\n\r\n') headers = yield stream.read_until(b'\r\n\r\n') self.assertIn(b'OK', headers) body_1 = yield stream.read_until(b' ') body_2 = yield stream.read_until_close() self.assertEqual(b'hello world!', body_1 + body_2) self.assertTrue(stream.closed)