• 通过Socket让远程电脑执行脚本


    实现功能:

      客户端发送命令,服务器接收命令并执行

    服务端:                                                                                                                                               

    import socketserver, os
    
    class MyTCPHandler(socketserver.BaseRequestHandler):
        def handle(self):
            try:
                while True:
                    self.data=self.request.recv(1024)
                    print("{} send:".format(self.client_address),self.data.decode("utf8"))
                    os.system("%s" % self.data.decode("utf8"))
                    self.request.sendall("脚本开始执行".encode("utf8"))
            except Exception as e:
                print(self.client_address,"连接断开")
            finally:
                self.request.close()
        def setup(self):
            print("before handle,连接建立:",self.client_address)
        def finish(self):
            print("finish run  after handle")
    
    
    HOST,PORT = "127.0.0.1",9998
    
    server=socketserver.ThreadingTCPServer((HOST,PORT),MyTCPHandler)         #多线程  
    #server=socketserver.TCPServer((HOST,PORT),MyTCPHandler)          #单线程  
    server.serve_forever()

    客户端:                                                                                                                                                              

    import socket, config
    
    client=socket.socket()
    client.connect(('192.168.175.130',9999))
    while True:
      cmd=input("(quit退出)>>").strip()
      if len(cmd)==0:
        continue
      if cmd=="quit":
        break
    client.send(cmd.encode("utf8"))
    cmd_res
    =client.recv(1024)
    print(cmd_res.decode("utf8")) client.close()

    在编程所遇到的问题                                                                                                                                                           

    1.编码问题
      encode()编码 : str -> bytes
        str.encode()
      decode()解码 : bytes -> str
        bytes.decode()
      默认的encoding是 utf-8
      
      

     参考文档:https://www.cnblogs.com/progor/p/8617042.html#top

    修改了通过utf8字符串传输

  • 相关阅读:
    android studio 中如何合并冲突(转)
    关于学习ZigBee的书籍
    多一点学习之外的人文思考
    有关技术文档的一点感想
    有关文学知识对我大学生活的影响
    【转】华为PCB布线规范
    【转】怎么样从一个疯狂下载者成为一个学习者!!!值得反省下的问题·~~
    时钟1
    关于有源滤波器和无源滤波器
    【转】zz个人的制板习惯流程
  • 原文地址:https://www.cnblogs.com/tang-s/p/9628958.html
Copyright © 2020-2023  润新知