還在找遠控?來看我用十幾行python程式碼寫個簡易遠端控制
阿新 • • 發佈:2019-02-02
剛開始學習程式設計的同學可能經常會問:“我學了這個幹什麼用?買菜的時候掏出電腦來編個程式算算多少錢?”
其實,這跟大家的知識面和入門選擇的語言有很大關係,大部分同學會選擇C語言來入門程式設計,C語言雖然簡潔,但是面向過程的程式設計方式總會讓人覺得枯燥無味,無所適從。
那咱們現在做個有意思的,做個超級簡易的遠端控制軟體,好吧~其實頂多算個指令碼。
請輸入圖片描述
既然是遠控,那就需要確定兩個功能:
1、遠端
即通過網路訪問外部主機(包括內網),我們可以利用Python中封裝好的 socket庫,可以實現遠端傳輸文字、檔案、視訊等。
Python socket詳情介紹
2、控制
控制,最簡單的理解就是執行命令,那麼我們可以採用Python中的 os庫,即可執行Linux shell 命令。
Python os詳情介紹
下面就是程式碼,儲存成.py檔案,然後先執行server.py 再執行 client.py。
服務端,儲存成 server.py
#!/usr/bin/env python # -*- coding:utf-8 -*- import socket import os line=socket.socket(socket.AF_INET,socket.SOCK_STREAM) line.bind(('伺服器IP',監聽埠)) line.listen(5) print('waiting commd------->') while True: conn,addr=line.accept() msg=conn.recv(1024) if msg == 'q': break print('get commd:',msg) result=os.popen(msg).read() conn.send('result: '+result) conn.close() phone.close()
客戶端 儲存成client.py
#!/usr/bin/env python # -*- coding:utf-8 -*- import socket while True: line=socket.socket(socket.AF_INET,socket.SOCK_STREAM) line.connect(('伺服器IP',監聽埠)) msg = str(raw_input('please input commd:')) line.send(str(msg).encode('utf-8')) data=phone.recv(1024) print data line.close()
執行結果如下:
服務端執行結果
客戶端在服務端執行 ls 命令後返回的結果
另外,小編有自己的學習交流群(主要是Python)大家如果想要來學習的話,可以加下:719+139+688,不管你是小白還是大牛,小編都歡迎,而且小編會在群裡面不定期分享乾貨,包括小編自己整理的一份2018年最新學習資料和零基礎入門教程,歡迎初學和進階中的小夥伴
服務端命令日誌