aioble — Asenkron BLE¶
aioble, bluetooth modülünün etrafına yazılmış üst düzey, asyncio uyumlu bir sarmalayıcıdır. Tarama, bağlanma, reklam yayını, GATT hizmetleri ve L2CAP kanalları için temiz coroutine’ler sağlar.
Tüm uzak işlemler (connect, disconnect, istemci read/write, sunucu indicate, l2cap recv/send, pair) beklenebilir (awaitable) niteliktedir ve zaman aşımlarını destekler.
Desteklenen roller:
Yayıncı (advertiser) — yaygın alanlar için reklam ve tarama yanıtı yükleri üretir, yükü reklam ve tarama yanıtı arasında otomatik olarak böler, süresiz olarak veya sabit bir süre boyunca reklam yayını yapar.
Çevre birimi (Peripheral) — bir merkezden (central) bağlantı bekler, MTU değişimini bekler.
Gözlemci (scanner) — pasif ve aktif tarama, aynı cihaz için reklam ve tarama yanıtı yüklerini birleştirir, reklam yüklerinden yaygın alanları ayrıştırır.
Merkez (Central) — bir çevre birimine bağlanır, MTU değişimini başlatır.
GATT İstemcisi — hizmetleri / özellikleri / tanımlayıcıları keşfeder (isteğe bağlı olarak UUID’ye göre); özellikler ve tanımlayıcılar üzerinde read / write / write-with-response yapar; bildirimlere ve göstergelere abone olur (CCCD aracılığıyla); bildirimleri ve göstergeleri bekler.
GATT Sunucusu — hizmetleri / özellikleri / tanımlayıcıları kaydeder; özellikler ve tanımlayıcılar üzerindeki yazmaları bekler; okuma isteklerini yakalar; bildirimleri ve göstergeleri gönderir (ve yanıtı bekler).
L2CAP — bağlantı odaklı L2CAP kanallarını kabul eder ve bağlar, kanal akış denetimini yönetir.
Güvenlik — JSON tabanlı anahtar/gizli yönetimi, eşleştirme başlatma, şifreleme / kimlik doğrulama durumunu sorgulama.
Örnekler¶
Yakındaki BLE cihazlarını tarayın ve görüldükçe her birini yazdırın:
import aioble
import asyncio
async def find_devices():
async with aioble.scan(duration_ms=5000, active=True) as scanner:
async for result in scanner:
print(result.device.addr_hex(), result.rssi, result.name())
asyncio.run(find_devices())
Bir merkez (central) olarak Heart Rate hizmetinin reklamını yapan bir çevre birimine bağlanın ve ölçüm bildirimlerine abone olun:
import aioble
import asyncio
import bluetooth
_HR_SERVICE = bluetooth.UUID(0x180D)
_HR_MEASUREMENT = bluetooth.UUID(0x2A37)
async def connect_and_read():
device = None
async with aioble.scan(duration_ms=5000, active=True) as scanner:
async for result in scanner:
if _HR_SERVICE in result.services():
device = result.device
break
if device is None:
return
async with await device.connect() as conn:
service = await conn.service(_HR_SERVICE)
char = await service.characteristic(_HR_MEASUREMENT)
await char.subscribe(notify=True)
while True:
data = await char.notified()
print("notify:", data)
asyncio.run(connect_and_read())
Bir çevre birimi (peripheral) olarak hareket edin: bir GATT hizmeti kaydedin, reklamını yapın ve bağlanan herkese bildirim gönderin:
import aioble
import asyncio
import bluetooth
import struct
_ENV_SERVICE = bluetooth.UUID(0x181A)
_TEMP_CHAR = bluetooth.UUID(0x2A6E)
def encode_temperature(deg_c):
# Bluetooth Temperature (0x2A6E) is sint16 little-endian, 0.01 degC units.
return struct.pack("<h", round(deg_c * 100))
service = aioble.Service(_ENV_SERVICE)
temp_char = aioble.Characteristic(service, _TEMP_CHAR, read=True, notify=True)
aioble.register_services(service)
async def peripheral_task():
while True:
connection = await aioble.advertise(
interval_us=250000,
name="openmv-sensor",
services=[_ENV_SERVICE],
appearance=0x0300,
)
print("connected:", connection.device.addr_hex())
async with connection:
while connection.is_connected():
temp_char.write(encode_temperature(23.68), send_update=True)
await asyncio.sleep(1)
asyncio.run(peripheral_task())
Modül düzeyindeki fonksiyonlar¶
- aioble.config(*args, **kwargs) Any¶
bluetooth.BLE.config()çağrısına yönlendirir ve önce BLE radyosunun etkin olduğundan emin olur.- args
Sorgulanacak isteğe bağlı tek parametre adı.
- kwargs
Yapılandırma değerlerini ayarlamak için anahtar sözcük argümanları.
- aioble.stop() None¶
Temel BLE radyosunu devre dışı bırakır ve kayıtlı tüm alt modül kapatma işleyicilerini çalıştırır. Bu çağrıdan sonra tarayıcılar, reklam yayıncıları, bağlantılar ve L2CAP kanallarının tamamı sonlandırılır.
- aioble.scan(duration_ms: int, interval_us: int | None = None, window_us: int | None = None, active: bool = False) scan¶
Keşfedilen her benzersiz cihaz için (veya bilinen bir cihazdan gelen her yeni reklam verisi parçası için)
ScanResultörnekleri üreten birscanasenkron bağlam yöneticisi / asenkron yineleyici döndürür.- duration_ms
Milisaniye cinsinden taramanın ne kadar süreceği. Bağlam yöneticisi çıkana kadar süresiz tarama yapmak için
0geçirin.- interval_us
Mikrosaniye cinsinden tarama aralığı. Varsayılan değer 1.280.000’dir.
- window_us
Mikrosaniye cinsinden tarama penceresi (interval_us değerine eşit veya daha küçük olmalıdır). Varsayılan değer 11.250’dir.
- active
Trueise, aktif bir tarama gerçekleştirir (tarama yanıt verisi ister). Varsayılan değerFalseşeklindedir.
- aioble.advertise(interval_us: int, adv_data: bytes | None = None, resp_data: bytes | None = None, connectable: bool = True, limited_disc: bool = False, br_edr: bool = False, name: str | None = None, services: list | None = None, appearance: int = 0, manufacturer: tuple | None = None, timeout_ms: int | None = None) DeviceConnection¶
Reklam yayınını başlatan ve gelen bir merkez bağlantısını bekleyen asenkron coroutine. Bağlı merkezi temsil eden bir
DeviceConnectiondöndürür veya zaman aşımındaasyncio.TimeoutErroryükseltir.- interval_us
Mikrosaniye cinsinden reklam aralığı.
- adv_data
Ham reklam yükü. Ayarlanmamışsa, adv_data kalan anahtar sözcük argümanlarından oluşturulur.
- resp_data
Ham tarama yanıtı yükü. Gerekirse adv_data taşmasından otomatik olarak doldurulur.
- connectable
Trueise, bu bağlanabilir bir reklamdır.- limited_disc
Genel yerine sınırlı keşfedilebilir (limited-discoverable) bayrağını kullanır.
- br_edr
BR/EDR-destekli bayrağını ayarlar.
- name
Gömülecek isteğe bağlı tam yerel ad.
- services
Reklamı yapılacak
bluetooth.UUIDyinelenebiliri.- appearance
16-bit görünüm değeri (bkz. Bluetooth atanmış numaralar).
- manufacturer
Üreticiye özgü veri olarak reklamı yapılacak
(company_id, data_bytes)demeti.- timeout_ms
Bağlantı olmadan bu kadar milisaniye sonra reklam yayınını durdurur.
None, bağlanana kadar reklam yapılacağı anlamına gelir.
- aioble.register_services(*services: Service) None¶
GATT sunucusuna bir veya daha fazla
Servicenesnesini (ve bunların özelliklerini ve tanımlayıcılarını) kaydeder.advertisebaşlatılmadan önce bir kez çağrılmalıdır. Sonraki çağrılar önceki kaydı değiştirir.- services
Bir veya daha fazla
Serviceörneği.
Modül düzeyindeki sabitler¶
- aioble.ADDR_PUBLIC¶
Genel (Public) BLE cihaz adres tipi (
0).
- aioble.ADDR_RANDOM¶
Rastgele (Random) BLE cihaz adres tipi (
1).
İstisnalar¶
- exception aioble.GattError¶
Uzak bir GATT işlemi (read / write / indicate) sıfır olmayan bir durumla tamamlandığında yükseltilir. Durum kodu
_statusözniteliği üzerinden erişilebilir.
- exception aioble.DeviceDisconnectedError¶
Bir asenkron işlem (örn. read, write, notified) içinde, beklerken temel bağlantı kesildiğinde yükseltilir.
- exception aioble.L2CAPDisconnectedError¶
Bağlantısı kesilmiş bir kanal üzerinde (veya bunun tarafından kesintiye uğratılarak) bir L2CAP kanal send/recv/flush işlemi denendiğinde yükseltilir.
- exception aioble.L2CAPConnectionError¶
Kanal kurulumu başarısız olduğunda
DeviceConnection.l2cap_connecttarafından yükseltilir. İlk argüman Bluetooth durum kodudur.
Sınıflar¶
- class aioble.Device(addr_type: int, addr: bytes | str)¶
Uzak bir BLE cihazını adresine göre temsil eder. İki
Deviceörneği, hem addr_type hem de addr eşleşiyorsa eşit kabul edilir. Bağlantıları başlatmak için tanıtıcı (handle) olarak kullanılır.- addr_type
ADDR_PUBLICveyaADDR_RANDOM.- addr
bytesolarak altı baytlık adres veya iki nokta üst üste ile ayrılmış onaltılık bir dize (örn."aa:bb:cc:dd:ee:ff").
- addr_type¶
Cihazın oluşturulduğu adres tipi.
- addr¶
Ham altı baytlık cihaz adresi.
- addr_hex() str¶
Adresi iki nokta üst üste ile ayrılmış onaltılık bir dize olarak biçimlendirip döndürür.
- connect(timeout_ms: int = 10000, scan_duration_ms: int | None = None, min_conn_interval_us: int | None = None, max_conn_interval_us: int | None = None) Awaitable[DeviceConnection]¶
Asenkron. Bu cihaza bir GAP bağlantısı başlatır ve elde edilen
DeviceConnectionnesnesini döndürür. Devam eden herhangi bir taramayı iptal eder.- timeout_ms
Bağlantının tamamlanmasının ne kadar bekleneceği.
- scan_duration_ms
Bağlanmadan önceki ilk tarama süresi (denetleyiciye özgü).
- min_conn_interval_us / max_conn_interval_us
Mikrosaniye cinsinden isteğe bağlı bağlantı aralığı sınırları.
- class aioble.DeviceConnection¶
Bir
Deviceile etkin bir GAP bağlantısı.Device.connect()veyaadvertisetarafından döndürülür. Çıkışta otomatik olarak bağlantıyı kesen birasync withbağlam yöneticisi olarak kullanımı destekler.Doğrudan oluşturmayın.
- encrypted¶
Bağlantı şifrelendikten sonra (örn. eşleştirme sonrası)
Trueolur.
- authenticated¶
Bağlantı kimliği doğrulanmışsa (MITM korumalı eşleştirme)
Trueolur.
- bonded¶
Eşleştirme bağlanma (bonding) anahtarları ürettiyse
Trueolur.
- key_size¶
Bayt cinsinden anlaşılan şifreleme anahtarı boyutu veya şifrelenmemişse
False.
- mtu¶
exchange_mtusonrasında anlaşılan ATT MTU veya ayarlanana kadarNone.
- disconnect(timeout_ms: int = 2000) Awaitable[None]¶
Asenkron. Bağlantıyı keser ve bağlantı kesme IRQ’sunu bekler.
- timeout_ms
Bağlantı kesmenin beklenmesi için maksimum süre.
- disconnected(timeout_ms: int | None = None, disconnect: bool = False) Awaitable[None]¶
Asenkron. Bağlantının iki taraftan biri tarafından sonlandırılmasını bekler. disconnect
Trueise önce etkin olarak bağlantıyı keser.- timeout_ms
Maksimum bekleme süresi.
None, sonsuza kadar bekleme anlamına gelir.- disconnect
Trueise, bağlantı kesmeyi başlatır.
- timeout(timeout_ms: int | None) DeviceTimeout¶
Ya zaman aşımı dolarsa (
asyncio.TimeoutErroryükselterek) ya da cihazın bağlantısı kesilirse (DeviceDisconnectedErroryükselterek) gövdesini iptal eden bir bağlam yöneticisi döndürür.- timeout_ms
Milisaniye cinsinden zaman aşımı veya zaman aşımı olmaması için
None.
- exchange_mtu(mtu: int | None = None, timeout_ms: int = 1000) Awaitable[int]¶
Asenkron. Bir ATT MTU değişimi başlatır ve anlaşılan MTU’yu döndürür.
- mtu
Değişimden önce temel BLE arabiriminde ayarlanacak isteğe bağlı tercih edilen MTU.
- timeout_ms
Değişim için zaman aşımı.
- service(uuid: bluetooth.UUID, timeout_ms: int = 2000) Awaitable[ClientService | None]¶
Asenkron. uuid ile eşleşen tek bir uzak hizmeti keşfeder veya bulunamazsa
Nonedöndürür.
- services(uuid: bluetooth.UUID | None = None, timeout_ms: int = 2000) ClientDiscover¶
Uzak
ClientServicenesnelerinin asenkron bir yineleyicisini döndürür.async forile kullanın ve döngüyü sonuna kadar çalıştırın.- uuid
İsteğe bağlı UUID filtresi.
Noneher hizmeti döndürür.- timeout_ms
Keşif başına zaman aşımı.
- pair(bond: bool = True, le_secure: bool = True, mitm: bool = False, io: int = 3, timeout_ms: int = 20000) Awaitable[None]¶
Asenkron. Bu bağlantıda eşleştirmeyi başlatır. Tamamlandığında
encrypted/authenticated/bonded/key_sizeözniteliklerini günceller.- bond
Eşleştirme anahtarlarını kalıcı hale getirir.
- le_secure
LE Secure Connections kullanır.
- mitm
Ortadaki adam (man-in-the-middle) korumasını gerektirir.
- io
IO yetenek sabiti (örn. giriş/çıkış olmaması için
3).- timeout_ms
Eşleştirme zaman aşımı.
- l2cap_accept(psm: int, mtu: int, timeout_ms: int | None = None) Awaitable[L2CAPChannel]¶
Asenkron. Verilen PSM üzerinde dinler ve uzak taraf açtığında bir
L2CAPChanneldöndürür.- psm
Üzerinde dinlenecek Protocol/Service Multiplexer.
- mtu
Bayt cinsinden maksimum alma boyutu.
- timeout_ms
Uzak tarafın bağlanmasının beklenmesi için maksimum süre.
- l2cap_connect(psm: int, mtu: int, timeout_ms: int = 1000) Awaitable[L2CAPChannel]¶
Asenkron. Verilen PSM üzerinde uzak tarafa bir L2CAP kanalı açar.
- psm
Bağlanılacak Protocol/Service Multiplexer.
- mtu
Bayt cinsinden maksimum alma boyutu.
- timeout_ms
Bağlantı zaman aşımı.
- class aioble.ScanResult¶
scansırasında keşfedilen tek bir cihaz. Yeni reklam verileri geldikçe aynı örnek yeniden üretilir.Doğrudan oluşturmayın.
- rssi¶
dBm cinsinden son bildirilen RSSI.
- adv_data¶
Ham reklam yükü (
bytesveyaNone).
- resp_data¶
Aktif tarama etkinse, ham tarama yanıtı yükü (
bytesveyaNone).
- connectable¶
En son reklam bağlanabilir nitelikteyse
Trueolur.
- name() str | None¶
Yükten tam (veya kısaltılmış) reklamı yapılan yerel adı çözer veya yoksa
Nonedöndürür.
- services() Iterator[bluetooth.UUID]¶
16/32/128-bit hizmet listesi alanlarında reklamı yapılan her
bluetooth.UUIDdeğerini üreten bir üreteç (generator).
- class aioble.Service(uuid: bluetooth.UUID)¶
Yerel bir GATT hizmeti. Bir hizmeti bir veya daha fazla
Characteristicörneğiyle oluşturun, ardındanregister_servicesfonksiyonuna geçirin.- uuid
Hizmet UUID’si.
- uuid¶
Hizmet UUID’si.
- characteristics¶
Bu hizmete bağlı
Characteristicnesnelerinin listesi.
- class aioble.Characteristic(service: Service, uuid: bluetooth.UUID, read: bool = False, write: bool = False, write_no_response: bool = False, notify: bool = False, indicate: bool = False, initial: bytes | None = None, capture: bool = False)¶
Yerel bir GATT özelliği. Bir tane oluşturmak, onu otomatik olarak service öğesine ekler.
- service
Sahip olan
Service.- uuid
Özellik UUID’si.
- read, write, write_no_response, notify, indicate
Desteklenen GATT işlemlerini seçen mantıksal (Boolean) değerler.
- initial
İsteğe bağlı başlangıç değeri (
bytes).- capture
Trueise, yazılan değerler kuyruğa alınır (en fazla 10 derinliğinde), böylece arka arkaya gelen hızlı yazmalar kaybolmaz. Herwrittençağrısı ardından bir(connection, data)demeti döndürür.
- uuid¶
Özellik UUID’si.
- flags¶
Kurucudan oluşturulan GATT özellik bayraklarının bit maskesi.
- descriptors¶
Bu özelliğe bağlı
Descriptornesnelerinin listesi.
- write(data: bytes, send_update: bool = False) None¶
Yerel GATT veritabanındaki değeri günceller.
- data
Yeni değer baytları.
- send_update
Trueise, ayrıca abone olan her bağlantıya bildirim/gösterge gönderir.
- notify(connection: DeviceConnection, data: bytes | None = None) None¶
connection öğesine bir GATT Notify gönderir.
- connection
Hedef istemci bağlantısı.
- data
Gönderilecek yük.
Noneise, geçerli yerel değer gönderilir.
- indicate(connection: DeviceConnection, data: bytes | None = None, timeout_ms: int = 1000) Awaitable[None]¶
Asenkron. connection öğesine bir GATT Indicate gönderir ve istemci onayını bekler. Sıfır olmayan bir durumda
GattErroryükseltir.- connection
Hedef istemci bağlantısı.
- data
Gösterilecek yük veya yerel değeri göndermek için
None.- timeout_ms
Onayın beklenmesi için maksimum süre.
- written(timeout_ms: int | None = None) Awaitable[DeviceConnection | tuple[DeviceConnection, bytes]]¶
Asenkron. Uzak bir yazmayı bekler. Yazan
DeviceConnectionnesnesini veya özellikcapture=Trueile oluşturulduysa(connection, data)döndürür.- timeout_ms
Maksimum bekleme süresi.
Nonesonsuza kadar bekler.
- on_read(connection: DeviceConnection) int¶
Uzak bir okuma alındığında senkron olarak çağrılan geçersiz kılma (override) kancası. Okumaya izin vermek için
0veya reddetmek için sıfır olmayan bir ATT hata kodu döndürür. Varsayılan uygulama0döndürür.
- class aioble.BufferedCharacteristic(service: Service, uuid: bluetooth.UUID, max_len: int = 20, append: bool = False, **kwargs)¶
Arkaplandaki GATT arabelleği yapılandırılabilen bir
Characteristic. Varsayılan öznitelik boyutundan daha büyük değerleri almak veya arka arkaya yazmaları kuyruğa almak için kullanışlıdır.- max_len
Bayt cinsinden arabellek boyutu.
- append
Trueise, ardışık yazmalar üzerine yazmak yerine arabelleğe eklenir.
Diğer argümanlar
Characteristicöğesine iletilir.
- class aioble.Descriptor(characteristic: Characteristic, uuid: bluetooth.UUID, read: bool = False, write: bool = False, initial: bytes | None = None)¶
Yerel bir GATT tanımlayıcısı. Bir tane oluşturmak, onu otomatik olarak characteristic öğesine ekler.
Characteristicöğesindenread,writevewrittenyöntemlerini devralır.- characteristic
Sahip olan
Characteristic.- uuid
Tanımlayıcı UUID’si.
- read, write
Desteklenen GATT işlemlerini seçen mantıksal (Boolean) değerler.
- initial
İsteğe bağlı başlangıç değeri (
bytes).
- class aioble.ClientService¶
Bir eşte (peer) keşfedilen uzak bir GATT hizmeti.
DeviceConnection.service()tarafından döndürülür veyaDeviceConnection.services()üzerinden yinelenir.Doğrudan oluşturmayın.
- connection¶
Sahip olan
DeviceConnection.
- uuid¶
Uzak hizmet UUID’si.
- characteristic(uuid: bluetooth.UUID, timeout_ms: int = 2000) Awaitable[ClientCharacteristic | None]¶
Asenkron. UUID’ye göre tek bir özelliği keşfeder veya bulunamazsa
Nonedöndürür.
- characteristics(uuid: bluetooth.UUID | None = None, timeout_ms: int = 2000) ClientDiscover¶
ClientCharacteristicnesnelerinin asenkron bir yineleyicisini döndürür.async forile kullanın ve döngüyü sonuna kadar çalıştırın.- uuid
İsteğe bağlı UUID filtresi.
- timeout_ms
Keşif başına zaman aşımı.
- class aioble.ClientCharacteristic¶
Bir eşte (peer) keşfedilen uzak bir GATT özelliği.
ClientService.characteristic()tarafından döndürülür veyaClientService.characteristics()üzerinden yinelenir.Doğrudan oluşturmayın.
- service¶
Sahip olan
ClientService.
- uuid¶
Özellik UUID’si.
- properties¶
Eş tarafından bildirilen, desteklenen GATT işlemlerinin bit maskesi.
- read(timeout_ms: int = 1000) Awaitable[bytes]¶
Asenkron. Bir GATT Read gönderir ve değeri döndürür. Sıfır olmayan bir durumda
GattErroryükseltir.- timeout_ms
Okuma zaman aşımı.
- write(data: bytes, response: bool | None = None, timeout_ms: int = 1000) Awaitable[None]¶
Asenkron. Bir GATT Write gönderir.
- data
Yazılacak değer.
- response
Bir yazma yanıtı gerektirmek (ve başarısızlıkta
GattErroryükseltmek) içinTrue. Yanıtsız yazma içinFalse.None(varsayılan), eşin reklamını yaptığına göre otomatik seçer.- timeout_ms
Yazma zaman aşımı (yalnızca response
Trueise geçerlidir).
- notified(timeout_ms: int | None = None) Awaitable[bytes]¶
Asenkron. Bu özellikteki bir sonraki bildirimi bekler ve yükünü döndürür. Halihazırda kuyruğa alınmış bir bildirim varsa hemen döner.
- timeout_ms
Maksimum bekleme süresi.
Nonesonsuza kadar bekler.
- indicated(timeout_ms: int | None = None) Awaitable[bytes]¶
Asenkron. Bu özellikteki bir sonraki göstergeyi bekler ve yükünü döndürür.
- timeout_ms
Maksimum bekleme süresi.
- subscribe(notify: bool = True, indicate: bool = False) Awaitable[None]¶
Asenkron. Bildirimler ve/veya göstergeler için abone olmak (veya aboneliği kaldırmak) üzere Client Characteristic Configuration Descriptor (CCCD) öğesini yazar.
- notify
Bildirimleri etkinleştirir.
- indicate
Göstergeleri etkinleştirir.
- descriptor(uuid: bluetooth.UUID, timeout_ms: int = 2000) Awaitable[ClientDescriptor | None]¶
Asenkron. UUID’ye göre tek bir tanımlayıcıyı keşfeder veya bulunamazsa
Nonedöndürür.
- descriptors(timeout_ms: int = 2000) ClientDiscover¶
ClientDescriptornesnelerinin asenkron bir yineleyicisini döndürür.async forile kullanın ve döngüyü sonuna kadar çalıştırın.
- class aioble.ClientDescriptor¶
Bir eşte (peer) keşfedilen uzak bir GATT tanımlayıcısı.
ClientCharacteristicöğesindenreadvewriteyöntemlerini devralır.Doğrudan oluşturmayın.
- characteristic¶
Sahip olan
ClientCharacteristic.
- uuid¶
Tanımlayıcı UUID’si.
- class aioble.L2CAPChannel¶
Etkin bir L2CAP bağlantı odaklı kanal.
DeviceConnection.l2cap_accept()veyaDeviceConnection.l2cap_connect()tarafından döndürülür. Çıkışta otomatik olarak bağlantıyı kesen birasync withbağlam yöneticisi olarak kullanımı destekler.Doğrudan oluşturmayın.
- our_mtu¶
Eşin tek bir SDU içinde bize gönderebileceği bayt cinsinden maksimum boyut.
- peer_mtu¶
Tek bir SDU içinde eşe gönderebileceğimiz bayt cinsinden maksimum boyut.
- available() bool¶
Arabelleğe alınmış alma verisi hazırsa (yani
recvintobloklamayacaksa) senkron olarakTruedöndürür.
- recvinto(buf: bytearray, timeout_ms: int | None = None) Awaitable[int]¶
Asenkron. buf içine alır ve okunan bayt sayısını döndürür. Kanal boşsa yeni veriyi bekler.
- buf
Doldurulacak önceden ayrılmış arabellek.
- timeout_ms
Maksimum bekleme süresi.
Nonesonsuza kadar bekler.
- send(buf: bytes, timeout_ms: int | None = None, chunk_size: int | None = None) Awaitable[None]¶
Asenkron. buf öğesini kanalda gönderir, daha büyük yükleri MTU boyutundaki parçalara böler. Gerektiğinde akış denetimi kredilerini bekler.
- buf
Gönderilecek bayt benzeri nesne.
- timeout_ms
Parça başına maksimum bekleme süresi.
- chunk_size
Çağrı başına parça boyutu için isteğe bağlı geçersiz kılma.
min(our_mtu * 2, peer_mtu)ile sınırlandırılır.
- flush(timeout_ms: int | None = None) Awaitable[None]¶
Asenkron. Duraklamış herhangi bir
sendişlemi denetleyici tarafından boşaltılana kadar bekler.- timeout_ms
Maksimum bekleme süresi.