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

  • 相关阅读:
    App.js和App.css(用于移动应用的js和css)
    cookie和session使用
    html实现返回上一页的几种方法(javaScript:history.go(-1);)
    sublime找到成对标签(Ctrl+Shift+")
    Java NIO框架Netty课程(一) – Hello Netty
    信息增益的特征选择方法
    Java线程学习笔记(两) 线程异常处理
    薏米红豆粥的功效和实践演示
    文件翻译002片:Process Monitor帮助文档(Part 2)
    Spring MVC 3 深入总结
  • 原文地址:https://www.cnblogs.com/tang-s/p/9628958.html
Copyright © 2011-2022 走看看