51 lines
2.4 KiB
Python
51 lines
2.4 KiB
Python
import asyncio
|
|
import logging
|
|
|
|
import i2plib
|
|
|
|
BUFFER_SIZE = 65536
|
|
|
|
PK_B64 = "5pJLIgm7KCqk-d0As66OdeMRj4moqtD97wOluQh5SXWCbeMfp7cr8cgHU~5rrcN6V~QcIJuqjDpYWojBdjYrc7fAA3iwWpN4fzI05yvE48oOOOLqBq7SvkpyzIhjc0hv81XQIu0LWzXXS~-B61wurJhte-LisF571BzefV5xoaRN8y3A0RidaJyuzVufPP4cKY5NeSsmTY36QRl54PG7iWJSXnLROROlg6qsjoeIV9lyNFY6ZsQKTQzEIInCZaARmNfoJP-MAsOMoj-CRDU2MXhYT~DKdI-rWH579A3wuoEjmlHtHyms7xvwUkb6kIx5UJHZmzF2Hyv3xVrpu0HSkZfUIbzz1lAc4IZ-8jnBjt2RIRpYMNnwZW09HjJXQDd7K-QvpxpK-cqNJcmWehGP7OxLt9Jj6h~8aUFHIJtFI77Zmp~YGf7cO9vCZexeLn7iByqDtfhzTP62IPu0~MJafA4efU83A-DXo8PJhOhl7rYRzH7bWRzB1rhBI~w~TsVOBQAEAAcAAL0me7gfS2H-OZ3FAsPtbUFCFpTcvfLAzBmNxxYU5TflB4KcxNe2isp2UjM7YLCuZg6OCaBSEnoag-ABpJPkY0WIjkqbFzOlowH2oVwevFHrZCFwvf1XVXsyWdupACHmmRHFCHKHMKzolO3Cye0RMH0wIEyMRyIszSThft~keXWyuEwBM4Vros-OKrKN-mBrHNbzQzTiGLS0dVMzdPvG6Pq4t1~wCWqAXrO8n7xU-xQECEpl053Ml5AJyUaCoVj3xqCd4nbrH2~kLmvd9r2nnd-Ig19BFHNALadSYbcH9JEdJZPY~7c505W1xhsrM2PcNnE4hm8DF4R~AddaILD7b2d1l~kehRZpUKdCL~THPTM20kTyN2PFqghIA4Ng-tVmXw=="
|
|
DEST_B32 = "bxwnysaa2nwykldz4ekz6u243x5ctqlcot5acmzj2huylvwr7eyq.b32.i2p"
|
|
|
|
async def ping_pong(sam_address, loop):
|
|
_, server_session_writer = await i2plib.create_session("ppserver",
|
|
sam_address=sam_address, loop=loop, private_key=PK_B64)
|
|
server_reader, server_writer = await i2plib.stream_accept("ppserver",
|
|
sam_address=sam_address, loop=loop)
|
|
|
|
_, client_session_writer = await i2plib.create_session("ppclient",
|
|
sam_address=sam_address, loop=loop)
|
|
client_reader, client_writer = await i2plib.stream_connect("ppclient",
|
|
DEST_B32, sam_address=sam_address, loop=loop)
|
|
|
|
client_writer.write(b"PING")
|
|
incoming = await server_reader.read(BUFFER_SIZE)
|
|
dest, request = incoming.split(b"\n", 1)
|
|
remote_destination = i2plib.Destination(dest.decode())
|
|
if not request:
|
|
request = await server_reader.read(BUFFER_SIZE)
|
|
assert request == b"PING"
|
|
server_writer.write(b"PONG")
|
|
response = await client_reader.read(BUFFER_SIZE)
|
|
assert response == b"PONG"
|
|
|
|
client_writer.close()
|
|
server_writer.close()
|
|
server_session_writer.close()
|
|
client_session_writer.close()
|
|
|
|
await asyncio.sleep(0.0001) # wait until all tasks are completed
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sam_address = i2plib.get_sam_address()
|
|
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
loop = asyncio.get_event_loop()
|
|
loop.set_debug(True)
|
|
|
|
loop.run_until_complete(ping_pong(sam_address, loop))
|
|
loop.stop()
|
|
loop.close()
|