Skip to content

xtqxk/pyamux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

pyamux

A python port of yamux

Usage and example:

# coding:utf-8
import asyncio
import sys
import sys
import socket
from pyamux import stream
from pyamux import Server
from pyamux import Client


async def handle_echo(reader, writer):
    print("start server handler")
    conn = stream.Conn(reader, writer)
    session = Server(conn, None)
    await asyncio.gather(session.init(), new_client(session))


async def new_client(session):
    _stream, err = await session.accept()
    if err is not None:
        raise err
    while True:
        ret = await _stream.read(4)


async def server():
    print("start server")
    srv = await asyncio.start_server(handle_echo, "127.0.0.1", 8089, loop=loop)


async def client_init(session):
    _stream, err = session.Open()
    if err is not None:
        raise err
    ret, err = await _stream.write(b"ping")
    print("start send,%s" % ret)
    ret, err = await _stream.write(b"pong")
    print("start send,%s" % ret)


async def client():
    print("start client")
    reader, writer = await asyncio.open_connection("127.0.0.1", 8089)
    conn = stream.Conn(reader, writer)
    session = Client(conn, None)
    await asyncio.gather(session.init(), client_init(session))


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(server())
    loop.run_until_complete(client())
    loop.run_forever()

About

A python port of yamux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages