Python-examples: Difference between revisions
From Bashlinux
Jump to navigationJump to search
Content deleted Content added
No edit summary |
Redirected page to Python snippets |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
#REDIRECT [[Python snippets]] |
|||
__NOTOC__ |
|||
= Python: Examples = |
|||
== Server/Client == |
|||
Simple Server/Client communication, communication data is text. |
|||
==== Server ==== |
|||
<pre><nowiki> |
|||
import SocketServer |
|||
class EchoRequestHandler(SocketServer.BaseRequestHandler): |
|||
def setup(self): |
|||
print self.client_address, 'connected!' |
|||
self.request.send('hi ' + str(self.client_address) + '\n') |
|||
def handle(self): |
|||
while 1: |
|||
data = self.request.recv(1024) |
|||
self.request.send(data) |
|||
if data.strip() == 'bye': |
|||
return |
|||
def finish(self): |
|||
print self.client_address, 'disconnected!' |
|||
self.request.send('bye ' + str(self.client_address) + '\n') |
|||
#server host is a tuple ('host', port) |
|||
server = SocketServer.ThreadingTCPServer(('localhost', 5000), EchoRequestHandler) |
|||
server.serve_forever() |
|||
</nowiki></pre> |
|||
==== Client ==== |
|||
<pre><nowiki> |
|||
import socket |
|||
sock = socket.socket(socket.AF_INET, sock.SOCK_STREAM) |
|||
sock.connect(('localhost', 5000)) |
|||
print sock.recv(1024) |
|||
sock.send('bye') |
|||
</nowiki></pre> |
|||
== Subprocess in a Thread == |
|||
How to issue and external command with `Popen`, a subprocess, from inside a thread in Python. |
|||
<pre><nowiki> |
|||
import threading |
|||
import subprocess |
|||
class MyClass(threading.Thread): |
|||
def __init__(self): |
|||
self.stdout = None |
|||
self.stderr = None |
|||
threading.Thread.__init__(self) |
|||
def run(self): |
|||
p = subprocess.Popen('rsync -av /etc/passwd /tmp'.split(), |
|||
shell=False, |
|||
stdout=subprocess.PIPE, |
|||
stderr=subprocess.PIPE) |
|||
self.stdout, self.stderr = p.communicate() |
|||
myclass = MyClass() |
|||
myclass.start() |
|||
myclass.join() |
|||
print myclass.stdout |
|||
</nowiki></pre> |
|||
Latest revision as of 05:58, 18 June 2015
Redirect to: