معرفی شرکت ها


dtee-0.1.1


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Tornado tcp stream parser
ویژگی مقدار
سیستم عامل -
نام فایل dtee-0.1.1
نام dtee
نسخه کتابخانه 0.1.1
نگهدارنده []
ایمیل نگهدارنده []
نویسنده lee_shaw
ایمیل نویسنده 838705177@qq.com
آدرس صفحه اصلی -
آدرس اینترنتی https://pypi.org/project/dtee/
مجوز BSD License
.. dtee documentation master file, created by sphinx-quickstart on Thu Jan 28 16:11:38 2021. dtee 文档 ==================================== | dtee是一个解析工具。它借助tornado的异步特性,对TCP协议下的数据传输对象stream进行解析。 | 示例 | 解析如下TCP包: | ##0183QN=123;PW=123456;SN=a123456;Flag=5;DataTime=20201203133147&&A000\r\n | 配置解析规则: | DTParserRule(2,6,"MLZ"), # 通过坐标定位 | DTParserRegxRule(r'QN=(?P<QN>.*?);'), # 通过正则定位 | DTParserRegxRule(r'PW=(?P<PW>.*?);'), # 通过正则定位 | DTParserRegxRule(r'SN=(?P<SN>.*?);'), # 通过正则定位 | DTParserRegxRule(r'Flag=(?P<Flag>.*?);'), # 通过正则定位 | DTParserRegxRule(r'DataTime=(?P<DataTime>.*?)&&') # 通过正则定位 | 得出如下结果: | {'MLZ': '0183', 'QN': '123', 'PW': '123456', 'SN': 'a123456', 'Flag': '5', 'DataTime': '20201203133147'} 安装 :: pip install dtee 快速使用 1.复制 dtee.example内容(tornado项目) 项目示例结构如下: - dtee_client - client.py - dtee_script - dtee_main.py - dtee_script_0119.py # example1 (选其一,或多个) - dtee_script_0183.py # example2 (选其一,或多个) - dtee_script_0660.py # example3 (选其一,或多个) 2.编写 dtee_script_xxx.py,用来解析TCP包中的数据 # example: dtee_script/dtee_script_0183.py .. code-block:: python from dtee.dtrule import DTKeyRule, DTParserRule, DTParserRegxRule # Is using this script FLAG = True # flag rule keyrules = (DTKeyRule(2, 6, '0183')) # parse rule parserules = ( DTParserRule(2,6,"MLZ"), DTParserRegxRule(r'QN=(?P<QN>.*?);'), DTParserRegxRule(r'PW=(?P<PW>.*?);'), DTParserRegxRule(r'SN=(?P<SN>.*?);'), DTParserRegxRule(r'Flag=(?P<Flag>.*?);'), DTParserRegxRule(r'DataTime=(?P<DataTime>.*?)&&') ) # callback def partternback(data,stream): print("partternback 0183:",data) 3.编写 client.py, 模拟TCP包 # example: dtee_client/client.py .. code-block:: python import datetime from tornado import ioloop, gen, iostream from tornado.tcpclient import TCPClient '''mock local client''' async def local_request(DATA): stream = await TCPClient().connect( host='localhost',port= 8064 ) try: await stream.write(DATA.encode('utf-8')) except iostream.StreamClosedError: pass async def main(): DATA1 = '##0183QN=123;PW=123456;SN=a123456;Flag=5;DataTime=20201203133147&&A000\r\n' DATA = DATA1 await local_request(DATA) if __name__ == '__main__': ioloop.IOLoop.current().run_sync( main ) 4.运行 TCP服务端 python app.py .. code-block:: bash 2021-02-26 18:48:52,113 -tools:tools.py-L31-INFO: Current log level is : DEBUG 2021-02-26 18:48:52,113 -app:app.py-L24-INFO: Start listening,port:8064 2021-02-26 18:48:52,114 -selector_events:selector_events.py-L58-DEBUG: Using selector: SelectSelector 5.运行 TCP客户端 python client.py 查看服务端日志,如下: .. code-block:: bash 2021-02-26 18:48:52,113 -tools:tools.py-L31-INFO: Current log level is : DEBUG 2021-02-26 18:48:52,113 -app:app.py-L24-INFO: Start listening,port:8064 2021-02-26 18:48:52,114 -selector_events:selector_events.py-L58-DEBUG: Using selector: SelectSelector partternback 0183: {'MLZ': '0183', 'QN': '123', 'PW': '123456', 'SN': 'a123456', 'Flag': '5', 'DataTime': '20201203133147'} handle_data data: {'MLZ': '0183', 'QN': '123', 'PW': '123456', 'SN': 'a123456', 'Flag': '5', 'DataTime': '20201203133147'} 2021-02-26 18:51:38,832 -dtmanager:dtmanager.py-L38-WARNING: Lost client at host ('::1', 61778, 0, 0) - 其他说明 TCP数据包结束标识,可以通过tornado的方法,自定义“read_until”,“read_bytes”等,具体见如下: dtee_script/dtee_main.py .. code-block:: python BaseDir = os.path.dirname(__file__) filename = os.path.basename(__file__) # 二选一 # dtparsermanager = DTParserManager( # eofmethod="read_bytes", # num_bytes=1024, # partial=True) # 二选一 dtparsermanager = DTParserManager( eofmethod = "read_until", delimiter = b"\r\n") - version0.1.1 1 新增预处理方法pre_parse example/app.py 用来预留原始数据的处理工作


نحوه نصب


نصب پکیج whl dtee-0.1.1:

    pip install dtee-0.1.1.whl


نصب پکیج tar.gz dtee-0.1.1:

    pip install dtee-0.1.1.tar.gz