python socket服务端
#!/usr/bin/python
#-*- coding: utf-8 -*-
import socket
import os,sys
host='127.0.0.1' #监听的IP
port=60000 #监听的端口
buffer=1024 #接受的字节数
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #建立socket对象
sock.bind((host,port)) #绑定IP和端口
sock.listen(5) #连接数量
def file_cp():
file_cp='scp file_cp.py root@%s:/root/liu' %ip
if os.system(file_cp)==0: #拷贝脚本文件
client.send("脚本传送成功!!!")
cmd="ssh %s 'python /root/liu/file_cp.py'" %ip
if os.system(cmd)==0:
client.send("对ip:%s开服成功!!" %ip) #执行脚本文件
else:
client.send("对ip:%s开服失败!!" %ip)
else:
client.send("脚本传送失败!!!")
while True:
client,addr=sock.accept()
try:
client.settimeout(5) #客户端超时设置
ip=client.recv(buffer) #接受来自客户端的命令
if not ip:
break
else:
if ip.startswith('-'):
option=ip
if option =='-h':
client.send("对指定的IP开服执行python sock_client_yuancheng.py 192.168.3.207")
elif option =='--help':
client.send("对指定的IP开服执行python sock_client_yuancheng.py 192.168.3.207")
else:
client.send("输入参数错误!!!")
elif ip=='192.168.3.207':
file_cp()
elif ip=='2':
client.send("你输入的参数超过2个,请检查!!!")
elif ip=='null':
client.send("你输入的参数为空,请检查!!!")
else:
client.send("你输入的命令不存在,请检查!!!")
except socket.timeout:
print 'client time out!!!'
client.close()
python socket客户端
#!/usr/bin/python
#-*- coding: utf-8 -*-
import socket
import sys
host='127.0.0.1' #客户端连接服务端的IP
port=60000 #客户端连接服务端的端口
buffer=1024 #字节数
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((host,port)) #连接服务端
sock.settimeout(5) #超时设置
while True:
try:
if len(sys.argv)==2: #判断链接的参数个数
order=sys.argv[1]
sock.send(order) #发送数据到服务端进行处理
recv=sock.recv(buffer) #接受服务端传来的数据
print '%s' %recv
elif len(sys.argv)>2:
order='2'
sock.send(order)
recv=sock.recv(buffer)
print '%s' %recv
break
else:
order='null'
sock.send(order)
recv=sock.recv(buffer)
print '%s' %recv
break
except socket.timeout:
break
sock.close()
转载于:https://blog.51cto.com/azhuang/1440200