实现功能:

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

  1. import socketserver, os
  2. class MyTCPHandler(socketserver.BaseRequestHandler):
  3. def handle(self):
  4. try:
  5. while True:
  6. self.data=self.request.recv(1024)
  7. print("{} send:".format(self.client_address),self.data.decode("utf8"))
  8. os.system("%s" % self.data.decode("utf8"))
  9. self.request.sendall("脚本开始执行".encode("utf8"))
  10. except Exception as e:
  11. print(self.client_address,"连接断开")
  12. finally:
  13. self.request.close()
  14. def setup(self):
  15. print("before handle,连接建立:",self.client_address)
  16. def finish(self):
  17. print("finish run after handle")
  18. HOST,PORT = "127.0.0.1",9998
  19. server=socketserver.ThreadingTCPServer((HOST,PORT),MyTCPHandler) #多线程
  1. #server=socketserver.TCPServer((HOST,PORT),MyTCPHandler)          #单线程
  1. server.serve_forever()

 

客户端:                                                                                                                                                              

  1. import socket, config
  2. client=socket.socket()
  3. 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. 1.编码问题
      encode()编码 str -> bytes
        str.encode()
      decode()解码 bytes -> str
        bytes.decode()
      默认的encoding utf-8
      
      

 

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

修改了通过utf8字符串传输

版权声明:本文为tang-s原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tang-s/p/9628958.html