У меня простой клиент сторона:
Код: Выделить всё
import asyncio
import socket
async def send_task(skt: socket.socket, msg):
skt.send(str.encode(msg))
print('task sent')
await asyncio.sleep(0.5)
async def main(skt: socket.socket, myloop):
tasks = [
myloop.create_task(send_task(skt, r'dir D:\Users\sandbox')),
myloop.create_task(send_task(skt, r'D: && cd D:\Users\sandbox && run.bat')),
myloop.create_task(send_task(skt, r'copy D:\Users\sandbox\model1.mesh D:\Users\Zharov\SPLAV\copied_model1.mesh'))
]
await asyncio.wait(tasks)
sock = socket.socket()
sock.connect(('192.168.7.42', 50182))
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(main(sock, loop))
Код: Выделить всё
import asyncio
import subprocess as sb
import socket
import time
async def executor(cmd):
print('start executing job %s' % cmd.decode('cp1251'))
proc = sb.Popen(cmd.decode('cp1251'), shell=True, stdout=sb.PIPE)
stdout, stderr = proc.communicate()
print(stdout.decode('cp1251'))
if stderr:
print(stderr.decode('cp1251'))
print('------------------------------------------')
async def main():
sock = socket.socket()
sock.bind(('', 0))
print('port: %d' % sock.getsockname()[1])
sock.listen(1)
conn, addr = sock.accept()
print('connected:', addr)
start = time.time()
while time.time() - start < 100:
data = conn.recv(1024)
if data:
await executor(data)
conn.close()
asyncio.run(main())
Код: Выделить всё
start executing job D: && cd D:\Users\sandbox && run.batcopy D:\Users\sandbox\model1.mesh D:\Users\SPLAV\copied_model1.mesh
Подробнее здесь: https://stackoverflow.com/questions/792 ... ncatenated
Мобильная версия