def connect(self): client_trickle = Trickle( socket.socket(socket.AF_INET), io_loop=self.io_loop) addr_info = yield self.resolver.resolve( 'localhost', self.port, socket.AF_INET) sock_addr = addr_info[0][1] yield client_trickle.connect(sock_addr) # Wait for server to handle connection. server_stream = yield self.server.test_stream server_trickle = Trickle(server_stream) raise gen.Return((client_trickle, server_trickle))
def test_http(self): addr_info = yield self.resolver.resolve( 'localhost', self.get_http_port(), socket.AF_INET) sock_addr = addr_info[0][1] trick = Trickle( socket.socket(socket.AF_INET), io_loop=self.io_loop) yield trick.connect(sock_addr) yield trick.write(b'GET / HTTP/1.1\r\n\r\n') headers = yield trick.read_until(b'\r\n\r\n') match = re.search(br'Content-Length: (\d+)\r\n', headers) content_length = int(match.group(1)) body = yield trick.read_bytes(content_length) self.assertEqual(b'hello', body)
def download(): sock = socket.socket(socket.AF_INET) trick = Trickle(sock) addr_info = yield resolver.resolve( 'xkcd.com', 80, socket.AF_INET) sock_addr = addr_info[0][1] yield trick.connect(sock_addr) yield trick.write(b'GET / HTTP/1.1\r\nHost: xkcd.com\r\n\r\n') headers = yield trick.read_until(b'\r\n\r\n') match = re.search(br'Content-Length: (\d+)\r\n', headers) content_length = int(match.group(1)) body = yield trick.read_bytes(content_length) print body