hello world

python编写TCPServer远程命令执行程序

 

 

服务器端

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 import os
 4 import SocketServer
 5 
 6 class myserver(SocketServer.BaseRequestHandler):
 7     def handle(self):
 8         print 'Get connection from ',self.client_address
 9         while True:
10             self.data = self.request.recv(4096).strip()
11             if self.data:
12                 print self.client_address,'execute ',self.data
13                 cmd = os.popen(self.data)
14                 result = cmd.read()
15                 self.request.sendall(result)
16 
17 if __name__=='__main__':
18     HOST,PORT='',5009
19     server = SocketServer.ThreadingTCPServer((HOST,PORT),myserver)
20     server.serve_forever()

 

客户端

#!/usr/bin/env python
#coding=utf-8

import socket

host,port='192.168.100.24',5009
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))

while True:
    cmd = raw_input('Please input command:')
    if cmd:
        s.sendall(cmd.encode())
    data = s.recv(4096)
    if data:
        print data

s.close()

 

这是个简易的TCP服务器,支持多个连接同时连到服务器上,客户端输命令在服务器端执行,如果客户端输入的命令在服务器端不存在,或者类似于top交互式等,结果无法返回。

 

posted @ 2019-07-07 20:37  浩天四哥  阅读(440)  评论(0)    收藏  举报