Python网络编程(2)-粘包现象及socketserver模块实现TCP并发

1、 基于Tcp的远程调用命令实现

  很多人应该都使用过Xshell工具,这是一个远程连接工具,通过上面的知识,就可以模拟出Xshell远程连接服务器并调用命令的功能。

  Tcp服务端代码如下:

1 import socket,subprocess 2 ip_port = ("127.0.0.1",8000) 3 tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 4 tcp_server.bind(ip_port) 5 tcp_server.listen(5) 6 print("the server has started") 7 while True: 8 try: 9 conn,addr = tcp_server.accept() 10 cmd = conn.recv(1024) 11 if not cmd:break 12 res = subprocess.Popen(cmd.decode("utf-8"),shell=True, 13 stdout=subprocess.PIPE, 14 stdin=subprocess.PIPE, 15 stderr=subprocess.PIPE) 16 error = res.stderr.read() 17 if error: 18 cmd_res = error 19 else: 20 cmd_res = res.stdout.read() 21 if not cmd_res: 22 cmd_res = "the reply is".encode("gbk") 23 conn.send(cmd_res) 24 except Exception: 25 break

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxpwj.html