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 ^^^^^^^^^^^^^