LINUX.ORG.RU

История изменений

Исправление Turbid, (текущая версия) :

Оказывается в Python завезли сахара для работы с асинхронными сокетами: https://docs.python.org/3/library/asyncio-protocol.html

Вот небольшой пример, который позволяет слушать одну из моих железок:

import asyncio
from binascii import hexlify


class ClientProtocol(asyncio.Protocol):
    def __init__(self, loop):
        self.loop = loop

    def connection_made(self, transport):
        print('Connected')

    def data_received(self, data):
        print(hexlify(data))

    def connection_lost(self, exc):
        print('The server closed the connection')
        print('Stop the event loop')
        self.loop.stop()


loop = asyncio.get_event_loop()
coro = loop.create_connection(lambda: ClientProtocol(loop),
                              '192.168.15.16', 10001)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()

Исправление Turbid, :

Оказывается в Python завезли сахара для работы с асинхронными сокетами: https://docs.python.org/3/library/asyncio-protocol.html

Вот небольшой пример, который позволяет слушать одну из моих железок:

import asyncio
from binascii import hexlify


class ClientProtocol(asyncio.Protocol):
    def __init__(self, loop):
        self.loop = loop

    def connection_made(self, transport):
        print('Connected')

    def data_received(self, data):
        print(hexlify(data))

    def connection_lost(self, exc):
        print('The server closed the connection')
        print('Stop the event loop')
        self.loop.stop()


loop = asyncio.get_event_loop()
coro = loop.create_connection(lambda: ClientProtocol(loop),
                              '192.168.15.16', 10001)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()
[/url]

Исходная версия Turbid, :

Оказывается в Python завезли сахара для работы с асинхронными сокетами: https://docs.python.org/3/library/asyncio-protocol.html

Вот небольшой пример, который позволяет слушать одну из моих железок:

import asyncio
from binascii import hexlify


class ClientProtocol(asyncio.Protocol):
    def __init__(self, loop):
        self.loop = loop

    def connection_made(self, transport):
        print('Connected')

    def data_received(self, data):
        print(hexlify(data))

    def connection_lost(self, exc):
        print('The server closed the connection')
        print('Stop the event loop')
        self.loop.stop()


loop = asyncio.get_event_loop()
coro = loop.create_connection(lambda: ClientProtocol(loop),
                              '192.168.15.16', 10001)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()
[/python]