8 พฤษภาคม 2558

Published 5/08/2558 by with 0 comment

ควบคุมคอมพิวเตอร์ผ่านเครือข่ายด้วยภาษา Python กับโมดูล RPyC

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปควบคุมคอมพิวเตอร์ผ่านเครือข่ายด้วยภาษา Python กับโมดูล RPyC กันครับ

โมดูล RPyC ย่อมาจาก Remote Python Call เป็นโมดูลสำหรับควบคุมคอมพิวเตอร์ผ่านเครือข่ายด้วยภาษา Python และยังสามารถทำระบบคลัสเตอร์ (clustering) และแจกจ่ายทรัพยากรระหว่างกัน (distributed-computing) ได้อีกด้วย
รองรับทั้ง Python 2 , Python 3
ใช้ License: MIT

สามารถติดตั้งได้โดยใช้คำสั่ง pip:
$ pip install rpyc

เราจะไปลองเขียนโปรแกรมควบคุมคอมพิวเตอร์ผ่านเครือข่ายด้วยภาษา Python กับโมดูล RPyC กันเลยครับ

ผมลง Ubuntu ไว้ใน VMware โดยผมต้องการควบคุมเครื่อง Ubuntu จากระบบปฏิบัติการ Windows

โค้ดส่วนเครื่องคอมพิวเตอร์ที่จะควบคุม

[python]
>>> from rpyc.utils.server import ThreadedServer
>>> import os
>>> import rpyc
>>> class MyService(rpyc.Service):
def exposed_echo(self, text):
os.system(text) # ให้รับข้อมูลที่ส่งมาจากตัวแปร text เป็นคำสั่ง สั่งงานตามที่ต้องการ
return os.name+" is ok." # ส่งข้อมูลกลับไปยังเครื่องที่ควบคุม
>>> server = ThreadedServer(MyService, port = 18812) # เรียกใช้คลาสคำสั่ง MyService และตั้งค่า port สำหรับใช้ควบคุมเครื่องคอมพิวเตอร์
>>> server.start() # ทำงาน
[/python]

ให้รันโค้ดส่วนเครื่องคอมพิวเตอร์ที่จะควบคุมก่อนครับ ต่อไปเขียนโค้ดส่วนเครื่องคอมพิวเตอร์ควบคุมกัน

โค้ดส่วนเครื่องคอมพิวเตอร์ควบคุม

[python]
>>> import rpyc
>>> con = rpyc.connect("192.168.177.143",18812) # เชื่อมต่อไปยัง Ubuntu โดยอ้างอิง IP และ port ของเครื่องที่จะควบคุม
>>> con.root.echo("echo 'Ok'") # ส่งข้อมูล
'posix is ok.'
[/python]

ผลลัพธ์
ควบคุมคอมพิวเตอร์ผ่านเครือข่ายด้วยภาษา Python กับโมดูล RPyCควบคุมผ่านเครือข่ายด้วยภาษา Python กับโมดูล RPyC

อ่านเอกสารการใช้งานโมดูล RPyC ได้ที่ https://rpyc.readthedocs.org
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)