From f9e7d510155897067b75607638894a7999187dd9 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Wed, 24 Dec 2025 16:30:40 +0100 Subject: [PATCH] neue Datei: main.py neue Datei: sec/cert.pem neue Datei: sec/key.pem --- main.py | 38 ++++++++++++++++++++++++++++++++++++++ sec/cert.pem | 33 +++++++++++++++++++++++++++++++++ sec/key.pem | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 main.py create mode 100644 sec/cert.pem create mode 100644 sec/key.pem diff --git a/main.py b/main.py new file mode 100644 index 0000000..33facac --- /dev/null +++ b/main.py @@ -0,0 +1,38 @@ +import asyncio + +HOST = "127.0.0.1" +PORT = 8888 + +async def handle_client(reader: asyncio.StreamReader, writer: asyncio.StreamWriter): + addr = writer.get_extra_info('peername') + print(f'Connection to {addr}') + + try: + while True: + data = await reader.read(1024) + if not data: + break + + message = data.decode().strip() + print(f'Received from {addr}: {message}') + + writer.write(data) + + await writer.drain() + finally: + print(f'Connection closed: {addr}') + writer.close() + await writer.wait_closed() + + +async def main(): + server = await asyncio.start_server(handle_client, HOST, PORT) + addr = ', '.join(str(sock.getsockname()) for sock in server.sockets) + print(f'Listening on {addr}') + + async with server: + await server.serve_forever() + + +if __name__ == '__main__': + asyncio.run(main()) \ No newline at end of file diff --git a/sec/cert.pem b/sec/cert.pem new file mode 100644 index 0000000..006b4cd --- /dev/null +++ b/sec/cert.pem @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFpzCCA4+gAwIBAgIUWq7OgkrxReTzQfU312BxBiK+mj8wDQYJKoZIhvcNAQEL +BQAwYzELMAkGA1UEBhMCREUxHDAaBgNVBAgME05vcmRyaGVpbi1XZXN0ZmFsZW4x +ETAPBgNVBAcMCEJvcm5oZWltMQ8wDQYDVQQKDAZqQ2xvdWQxEjAQBgNVBAMMCWxv +Y2FsaG9zdDAeFw0yNTEyMjQxNTI1MzZaFw0yNjEyMjQxNTI1MzZaMGMxCzAJBgNV +BAYTAkRFMRwwGgYDVQQIDBNOb3JkcmhlaW4tV2VzdGZhbGVuMREwDwYDVQQHDAhC +b3JuaGVpbTEPMA0GA1UECgwGakNsb3VkMRIwEAYDVQQDDAlsb2NhbGhvc3QwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC4vxjm1uUnWqUiJxKAjrJ8l/j +2SAWzBkHc6WjmlsgJ2u2HPuF+tp8UD0Es6MXnUe6vRBUWL2pKQ8vULr1qPA/ruew +mqoGV8diyRP/gYyG2hXjcl1Qi+qIE4GpwUJUGdSqSSUpA1070nGvFljPPNt5l+uv +ptD7ruI/sXLX1S5tDipWz5bqKh+2IDAal9FNI8otsULlKEroogoU/77UcTeRdxly +gTdMi/c5YqdSrU4HHwYzEvTCUCQrJxtj30yCT/zDReaKCtSysqZzLL90fOQCSEH+ +JC+5Hr5yb/ZzYslYnfOGkowX4Q+0QmEFSeia90OiZ2m2F+ce55FRBbziZumeD5P1 +Xu30rMyTABIiNc2ZaD9aZ6VRMWiixKKVv2+pnWpwcTeqlSERDiq4vL/nVOvFToM3 +CUVIcI9P5SvDT9JieYc6ex5DYWnUfmEYRn3dPdtS9zQzn/IAwRbY/u6AknHHV8CC +E8eqE4OR/MHZOeM4Y7pAMsZQMGokSoM5lLX4i5bG56IVW4RTgB3BIN7EMo1nvXAx +yOl4MTvm0YWWODWt7lYbUg+zAETA4pEpMyBdhFg8r2dvKQr/t9mY8SUKqwdIKbWk +R+uXbaszscz5HR4A1LUKhiXMRlh0TeKaq9uG2IW51oYQbYBkpOw6+b6n6Im+YZrn +10Gvmyq8qQwl1zou6wIDAQABo1MwUTAdBgNVHQ4EFgQUr+t8y79dZvGzmf9dz0hW +5VHB4c0wHwYDVR0jBBgwFoAUr+t8y79dZvGzmf9dz0hW5VHB4c0wDwYDVR0TAQH/ +BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAHe845E6a2cxGdVBfvQvUL44WSJlv +ZVuYpVbfCPAlbHvMo8w9awunouqUh9QrqbUPmdE5d0AZ0uqHDJa+cmqt1lIRLFO5 +duOQsKwFY23Y/30egJbiquGCu9O3DndMngv2BRvyMuoZ8vW6Xz7H+HozKaCc3BJ0 +2Nb9vq/TnroTzrt6gUKDiHT60ECWCtkOYz3VXxWGkCZO8oUOqQ5ph4BNitDjj6En +ci7ea1fgwAFCX+wl36zHsrBLftPjUKoyn6ZI9huS4KxIEWqfzp7b6BvNDmUNMwzF +4wJpeXIRhG0QivA1EVb09+7ppzYAYFUCRcqrqdKdLsqgYq7CrC+6Pa5upTmbYXPz +6qXqp/7kvFQliI8AgPcmv+7VVLfcR6qJCgLd3tXCxy0X0bBnRtdyXqKKERjkJhJ4 +4boa9nltiJcY2xHkNp8GVhYP0esV85394xvMOz6ghcDpCRdqaVlK7meB1tB5PoMy +d1EFgEDSwPlUhEeYtsMHuA25uGDvxadJHIx2m+Q3KdcQUglgI0P6P3v8v4Cmpyvc +7teoRqu9lduCfkazy/rN9f8yOWKETzeErczGAePIZWNZ0F8IUhVKTpUah2hM9rZP +1fdnjZym/SIQp+25g8YyAIrgsmhPJyLKQkoE/7sfP/KvIxrxdPin16KBiaSshfJl +8NNYsYi+ZltTGTw= +-----END CERTIFICATE----- diff --git a/sec/key.pem b/sec/key.pem new file mode 100644 index 0000000..fafac8b --- /dev/null +++ b/sec/key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +lh4wyR25G8nKxy/NrfycWMQRwAKuTtw= +-----END PRIVATE KEY-----