1. 程式人生 > >還在找遠控?來看我用十幾行python程式碼寫個簡易遠端控制

還在找遠控?來看我用十幾行python程式碼寫個簡易遠端控制

剛開始學習程式設計的同學可能經常會問:“我學了這個幹什麼用?買菜的時候掏出電腦來編個程式算算多少錢?”

其實,這跟大家的知識面和入門選擇的語言有很大關係,大部分同學會選擇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年最新學習資料和零基礎入門教程,歡迎初學和進階中的小夥伴

服務端命令日誌