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字符串传输

  • 相关阅读:
    springboot 路由 json
    mybatis-plus 条件构造器 Wrapper
    mybatis-plus 逻辑删除
    mybatis-plus 分页查询
    mybatis-plus 乐观锁
    mybatis-plus 自动填充处理
    mybatis-plus 增删改查(普通)
    mybatis-plus 日志
    mybatis-plus 初识
    React项目如何打包发布及遇到的坑
  • 原文地址:https://www.cnblogs.com/tang-s/p/9628958.html
Copyright © 2011-2022 走看看