Python-examples: Difference between revisions

From Bashlinux
Jump to navigationJump to search
Content deleted Content added
Manpaz (talk | contribs)
No edit summary
Manpaz (talk | contribs)
Redirected page to Python snippets
 
(One intermediate revision 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 call an external command with `Popen`, a subprocess, inside of a thread.
<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: