zoukankan      html  css  js  c++  java
  • 通过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字符串传输

  • 相关阅读:
    win shift s截图不能用(已解决)
    阿里云ssl证书过期怎么解决 (免费SSL证书) 三步解决
    图解 Java 数据结构
    微信小程序简介
    序列化类外键字段的覆盖,十大接口序列化总结,视图家族
    response二次封装,夺标关系优化,多表序列化,十大接口
    内部类,drf响应类,序列化与反序列化
    drf以及django应用
    DRF框架知识总览
    实例成员:计算属性 监听属性以及vue的项目开发
  • 原文地址:https://www.cnblogs.com/tang-s/p/9628958.html
Copyright © 2011-2022 走看看