| @@ -73,23 +73,32 @@ direct usage | |||||
| # use socks protocol | # use socks protocol | ||||
| transport, protocol = await aiosocks.create_connection( | transport, protocol = await aiosocks.create_connection( | ||||
| None, proxy=socks4_addr, proxy_auth=None, dst=dst) | 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 | # StreamReader, StreamWriter | ||||
| reader, writer = await aiosocks.open_connection( | 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) | data = await reader.read(10) | ||||
| writer.write('data') | writer.write('data') | ||||
| if __name__ == '__main__': | |||||
| loop = asyncio.get_event_loop() | |||||
| loop.run_until_complete(connect()) | |||||
| loop.close() | |||||
| error handling | error handling | ||||
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^ | ||||
| `SocksError` is a base class for: | |||||
| - `NoAcceptableAuthMethods` | |||||
| - `LoginAuthenticationFailed` | |||||
| - `InvalidServerVersion` | |||||
| - `InvalidServerReply` | |||||
| .. code-block:: python | .. code-block:: python | ||||
| try: | try: | ||||
| @@ -106,6 +115,18 @@ error handling | |||||
| except aiosocks.SocksError: | except aiosocks.SocksError: | ||||
| # something other | # 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 | aiohttp usage | ||||
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^ | ||||