{ "info": { "author": "hsz", "author_email": "hsz1273327@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Documentation :: Sphinx" ], "description": "\naio-tcpserver\n===============================\n\n* version: 0.0.3\n\n* status: dev\n\n* author: hsz\n\n* email: hsz1273327@gmail.com\n\nDesc\n--------------------------------\n\nA tcp sever for running `asyncio.Protocol`. The inspiration comes from sanic,\n\nonly support python 3.6+\n\n\nkeywords:tcp-server,asyncio\n\n\nFeature\n----------------------\n* with multiple worker\n* for asyncio.Protocol\n* can be closed by ctrl+C in windows\n* with hooks\n\nExample\n-------------------------------\n\nserver.py\n\n.. code:: python\n\n import asyncio\n import time\n from aio_tcpserver import tcp_server, listener\n\n @listener(\"before_server_start\")\n async def beat(loop):\n print(time.time())\n print(\"ping\")\n\n class EchoServerClientProtocol(asyncio.Protocol):\n def connection_made(self, transport):\n peername = transport.get_extra_info('peername')\n print('Connection from {}'.format(peername))\n self.transport = transport\n\n def data_received(self, data):\n message = data.decode()\n print('Data received: {!r}'.format(message))\n\n print('Send: {!r}'.format(message))\n self.transport.write(data)\n\n print('Close the client socket')\n self.transport.close()\n\n def main():\n tcp_server(EchoServerClientProtocol, worker=3)\n\n\n if __name__ == '__main__':\n main()\n\n\nclient.py\n\n\n.. code:: python\n\n import asyncio\n\n class EchoClientProtocol(asyncio.Protocol):\n def __init__(self, message, loop):\n self.message = message\n self.loop = loop\n\n def connection_made(self, transport):\n transport.write(self.message.encode())\n print('Data sent: {!r}'.format(self.message))\n\n def data_received(self, data):\n print('Data received: {!r}'.format(data.decode()))\n\n def connection_lost(self, exc):\n print('The server closed the connection')\n print('Stop the event loop')\n self.loop.stop()\n\n loop = asyncio.get_event_loop()\n message = 'Hello World!'\n coro = loop.create_connection(lambda: EchoClientProtocol(message, loop),\n '127.0.0.1', 5000)\n loop.run_until_complete(coro)\n loop.run_forever()\n loop.close()\n\n\n\n\n\nInstall\n--------------------------------\n\n- ``python -m pip install aio-tcpserver``\n\n\nDocumentation\n--------------------------------\n\n`Documentation on Readthedocs `_.\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Basic-Components/aio-tcpserver", "keywords": "tcp-server", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aio-tcpserver", "package_url": "https://pypi.org/project/aio-tcpserver/", "platform": "", "project_url": "https://pypi.org/project/aio-tcpserver/", "project_urls": { "Homepage": "https://github.com/Basic-Components/aio-tcpserver" }, "release_url": "https://pypi.org/project/aio-tcpserver/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "simple tools", "version": "0.0.3" }, "last_serial": 3528169, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "9ef299ee61c988766b086fbd95d22b6c", "sha256": "768c9727ceaebd7ad825fcd09c0c5f7d0da986cb3036d561472b4c034fa1b396" }, "downloads": -1, "filename": "aio_tcpserver-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9ef299ee61c988766b086fbd95d22b6c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 13377, "upload_time": "2018-01-27T15:43:31", "url": "https://files.pythonhosted.org/packages/ed/17/b08a16202ef1c1df1dff94c7547544e8c3e8997919f47a1468dd87fd504e/aio_tcpserver-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04486daf8e1c93747a5700402b34c598", "sha256": "a7210ca5e4b8087ff381c449a6b4f45cbf153c53683d6560fff146f1bd18c89d" }, "downloads": -1, "filename": "aio-tcpserver-0.0.2.tar.gz", "has_sig": false, "md5_digest": "04486daf8e1c93747a5700402b34c598", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9819, "upload_time": "2018-01-27T15:43:19", "url": "https://files.pythonhosted.org/packages/e9/e8/d5aa2f5e5b0008daff0f64bbfd20e0e0320570299959973d823b4ff08ca9/aio-tcpserver-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "25cdaa8156340db16e45724357b1c084", "sha256": "21f3252e787d657f792a56adc97d6a12818a395211cbe99b75dc2c9dd8e809c5" }, "downloads": -1, "filename": "aio_tcpserver-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "25cdaa8156340db16e45724357b1c084", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14171, "upload_time": "2018-01-28T05:26:21", "url": "https://files.pythonhosted.org/packages/e1/e6/93dcd26bff3eb331395b896c7b72d988237cf8e609c8a777e447dda91d89/aio_tcpserver-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64881de96f7d6ffa8c7b72dd201607a2", "sha256": "366ae3a468123e04391c0e10d034d6b0a6dae82d2a7e0e3dade20ba2c856d8ad" }, "downloads": -1, "filename": "aio-tcpserver-0.0.3.tar.gz", "has_sig": false, "md5_digest": "64881de96f7d6ffa8c7b72dd201607a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9690, "upload_time": "2018-01-28T05:26:17", "url": "https://files.pythonhosted.org/packages/f5/83/a669d4b402be0f654a7ede51eaa1043a3fffa43587643e44518cbdfbc6b0/aio-tcpserver-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "25cdaa8156340db16e45724357b1c084", "sha256": "21f3252e787d657f792a56adc97d6a12818a395211cbe99b75dc2c9dd8e809c5" }, "downloads": -1, "filename": "aio_tcpserver-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "25cdaa8156340db16e45724357b1c084", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14171, "upload_time": "2018-01-28T05:26:21", "url": "https://files.pythonhosted.org/packages/e1/e6/93dcd26bff3eb331395b896c7b72d988237cf8e609c8a777e447dda91d89/aio_tcpserver-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64881de96f7d6ffa8c7b72dd201607a2", "sha256": "366ae3a468123e04391c0e10d034d6b0a6dae82d2a7e0e3dade20ba2c856d8ad" }, "downloads": -1, "filename": "aio-tcpserver-0.0.3.tar.gz", "has_sig": false, "md5_digest": "64881de96f7d6ffa8c7b72dd201607a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9690, "upload_time": "2018-01-28T05:26:17", "url": "https://files.pythonhosted.org/packages/f5/83/a669d4b402be0f654a7ede51eaa1043a3fffa43587643e44518cbdfbc6b0/aio-tcpserver-0.0.3.tar.gz" } ] }