Python snippets
From Bashlinux
How to write a simple server and client in Python
Simple Server/Client communication, communication data is text.
Server
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()
Client
import socket sock = socket.socket(socket.AF_INET, sock.SOCK_STREAM) sock.connect(('localhost', 5000)) print sock.recv(1024) sock.send('bye')
How to create a subprocess in a thread with Python
How to call an external command with Popen
, a subprocess, inside of a thread.
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