安装SocketServer模块
yum install python-pip -y
pip install -U werkzeug
pip install gunicorn服务端程序
[root@B_db92 socket]# cat socket_server.py
#!/usr/bin/pythonimport SocketServer
import subprocess
import threading
import time
import os
import redis
class Server(SocketServer.BaseRequestHandler):
def handle(self):
ip,port = self.client_address
r=redis.Redis(host='127.0.0.1',port=6379,db=0)
cur_thread = threading.current_thread()
th_name=threading.currentThread().setName(ip)
while True:
if r.get('status') =='0':
if r.get('ip') == cur_thread.name:
self.request.send(r.get('cmd'))
r.set('status',1)
time.sleep(2)
cmd_result=self.request.recv(1024)
print cmd_result
#recdata = self.request.recv(2048)
#os.system("echo %s >>/tmp/socket.log" % (recdata) )
if __name__ == '__main__':
host,port = '10.0.7.92',5000
server = SocketServer.ThreadingTCPServer((host,port),Server)
server.serve_forever()
客户端程序
[root@dsk_mooc93 socket]# cat socket_client.py
# -*- coding: utf-8 -*-
import socket
import time
import os
import commands
HOST='10.0.7.92'
PORT=5000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
while 1:
data=s.recv(1024).strip()
if not data:break
print data
cmd_result=commands.getstatusoutput(data)
cmd_status,cmd_result=commands.getstatusoutput(data)
if cmd_status == 0:
print cmd_result
s.send(cmd_result)
else:
print "执行失败!"
s.send("执行失败!")
s.close()
windows客户端程序
# -*- coding: utf-8 -*-
import socket
import time
import os
import commands
HOST='10.0.7.92'
PORT=5000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
while 1:
data=s.recv(1024).strip()
if not data:break
print data
cmd_result=os.popen(data)
cmd_result=cmd_result.read()
if cmd_result != 0:
print cmd_result
s.send(cmd_result)
else:
print "执行失败!"
s.send("执行失败!")
s.close()