From 84bc8e5fd9a61ee357a429e7e8da5285d70c10c2 Mon Sep 17 00:00:00 2001 From: nibrag Date: Tue, 14 Jun 2016 21:43:15 +0300 Subject: [PATCH] Added more details --- README.rst | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/README.rst b/README.rst index b284639..beaeed9 100644 --- a/README.rst +++ b/README.rst @@ -73,23 +73,32 @@ direct usage # use socks protocol transport, protocol = await aiosocks.create_connection( None, proxy=socks4_addr, proxy_auth=None, dst=dst) + + if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(connect()) + loop.close() + + +**A wrapper for create_connection() returning a (reader, writer) pair** + +.. code-block:: python # StreamReader, StreamWriter reader, writer = await aiosocks.open_connection( - proxy=socks5_addr, proxy_auth=socks5_auth, dst=dst, remote_resolve=True) + proxy=socks5_addr, proxy_auth=socks5_auth, dst=dst, remote_resolve=True) data = await reader.read(10) writer.write('data') - - - if __name__ == '__main__': - loop = asyncio.get_event_loop() - loop.run_until_complete(connect()) - loop.close() error handling ^^^^^^^^^^^^^^ +`SocksError` is a base class for: + - `NoAcceptableAuthMethods` + - `LoginAuthenticationFailed` + - `InvalidServerVersion` + - `InvalidServerReply` .. code-block:: python try: @@ -106,6 +115,18 @@ error handling except aiosocks.SocksError: # something other +or + +.. code-block:: python + + try: + transport, protocol = await aiosocks.create_connection( + lambda: Protocol, proxy=socks5_addr, proxy_auth=socks5_auth, dst=dst) + except aiosocks.SocksConnectionError: + # connection error + except aiosocks.SocksError: + # socks error + aiohttp usage ^^^^^^^^^^^^^