Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Pavlos Parissis Newsgroups: comp.lang.python Subject: asyncio for UNIX socket Date: Thu, 17 Dec 2015 02:16:11 +0100 Lines: 72 Message-ID: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="HjL0aPeCdOC7AfLSAbUbUEn7DtHJuCiKi" X-Trace: news.uni-berlin.de eZNsXOT0uRlfg0E6x9u06QtQnNCU07ab6cmwuwYMPqCQ== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'data):': 0.07; 'socket': 0.07; "'w')": 0.09; 'cmd': 0.09; 'fp:': 0.09; 'self.data': 0.09; 'def': 0.13; 'filename:fname piece:signature': 0.16; 'received:192.168.0.103': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'self.cmd': 0.16; 'skip:l 30': 0.18; 'skip:u 30': 0.18; 'skip:{ 20': 0.18; 'sends': 0.22; 'file.': 0.22; 'trying': 0.22; 'thanks,': 0.24; 'import': 0.24; 'unix': 0.24; 'header:User-Agent:1': 0.26; 'peer': 0.29; 'saves': 0.30; 'skip:s 30': 0.31; 'skip:_ 10': 0.32; 'class': 0.33; 'message- id:@gmail.com': 0.34; "skip:' 20": 0.34; 'file': 0.34; 'server': 0.34; 'received:google.com': 0.35; 'sent:': 0.35; 'received:74.125.82': 0.35; 'skip:{ 10': 0.36; 'to:addr:python- list': 0.36; 'client': 0.37; 'doing': 0.38; 'skip:o 20': 0.38; 'hi,': 0.38; 'data': 0.39; 'sure': 0.39; 'received:192': 0.39; 'to:addr:python.org': 0.40; 'skip:u 10': 0.61 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type; bh=Oyi7R+X/KIAKPxUttAbVO8SwFoGzdbwuSjJYGuImUJA=; b=Z0sam+YPTKP7d40LJiJs2O7WAHzi3QFlovJCVo9b/xhBgzpEujCbt49STtgSMtGkHs HL37iAaQLCAEG5P6AfWrYYM0VdxpyoGUDzQmkhy8uhexyJjqH8yow+9VlWYiMtG4DiDv Tk7Hy1S2PvvkWti6GTW2j5eXmUlHnpk6/VAZlQSy6/MHNriZzsgBB8Xs1/oOq2P4Q3xH k9QxNeaeoQU/+laejniRiZmEIep+BFeQbhg06SDb4iD7dGBNWKzGCfaq+RQVHqgoB/eD VHa49L/D2LY4ONIqBpl/men08HOzNrIKb1TJd2Xs0oGcN6NOh2giv0NNDEZFAPfb9vw6 0ABA== X-Received: by 10.194.91.234 with SMTP id ch10mr58722359wjb.69.1450314973983; Wed, 16 Dec 2015 17:16:13 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com comp.lang.python:100546 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --HjL0aPeCdOC7AfLSAbUbUEn7DtHJuCiKi Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, I am trying to write UNIX socket client which sends 1 cmd and saves the received data to a file. Based on what I found on documentation I came up with:: import asyncio class UnixProtocol(asyncio.Protocol): def __init__(self, loop): self.cmd =3D 'show stat\n' self.loop =3D loop self.data =3D [] def connection_made(self, transport): transport.write(self.cmd.encode()) print('Data sent: {!r}'.format(self.message)) def data_received(self, data): print('Data received: {!r}'.format(data)) self.data.append(data.decode()) def connection_lost(self, exc): print('The server closed the connection') print('Stop the event loop') if self.data: with open('/tmp/somedata', 'w') as fp: fp.writelines(self.data) self.loop.stop() loop =3D asyncio.get_event_loop() s_file =3D '/run/haproxy/admin1.sock' coro =3D loop.create_unix_connection(lambda: UnixProtocol(loop), s_file) loop.run_until_complete(coro) loop.run_forever() loop.close() I am not sure if the above is the proper way to do the job. Am I doing the right thing to write the data to the file when peer closes the connection? Thanks, Pavlos --HjL0aPeCdOC7AfLSAbUbUEn7DtHJuCiKi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWcgzbAAoJEIP8ktofcXa5PxEP/jPxl2b8FzyMDkJfO9ljxUrp QDLU3FrtEVYpIZqJSyay+BEgnyMGoB7yxIhUOj74jIQ3jkKGsw2VY05w4+ar6a41 5KsLTriMrp6w6I20xykZ40ReecsTqhyMTfquviDhlGncoT8RDKhyIUcU6C9bIc0k KJOMN+mB3EEcjk/yTfFizhrPHMywSJcWmfAPqhNzu20idVDVEldh8sQeAYJnD2w8 wNBLt0/bd97b8AhLOtCGlI2gJJDnQ3fLK1ie7MApaCGymWoUQWo4dyhh89GuHmJR ansVIfcC+Kb8jLipc0B9G9XQYcyX4EW2C2z0xvgLuDNqUaLK8ju/RM/K4qDA5yO5 35Jfhq6g9mPVvp3lKsMO3e9azkxq7aqqIgjgMmde2dvfZ+WJIRTAPrgZ7M99EQNy /hflc/jawU8aEmARp4zp2VKWWMA9XCdNCIGzzOG5cSyWAQxG/J5esDG/2XO5atc+ MLEXCmHP4vRt6vCiWV/Ric6kkAdsz+ljVQGRF431d7qhHxaN6Lmgm+W2i9wzjQ1K RardvkjWL3NOkEyLb4a+bUvboqrkf8jADO66taJNNTlNwEJhiOMynyKjJS33O9G8 Y6TdVHvZPUxGIVqyahM7nKz1bu31pMc91ooopQh8AGVKBZcr6/zsLdrmLT4yv3pf iRu/nOy8CwkjfSTRkn/T =fpZz -----END PGP SIGNATURE----- --HjL0aPeCdOC7AfLSAbUbUEn7DtHJuCiKi--