37,721
社区成员
发帖
与我相关
我的任务
分享
import socket
import os
server=socket.socket()
server.bind(('localhost',9999))
server.listen()
while True:
conn,addr = server.accept()
print('new conn:',addr)
while True:
data=conn.recv(1024)
if not data:
print('客户端已断开')
break
print('执行指令',data)
cmd_res = os.popen(data.decode()).read()
print('before send',len(cmd_res))
if len(cmd_res)==0:
cmd_res='cmd has no output'
conn.send(str(len(cmd_res)).encode('utf-8'))#先发数据大小给客户端
conn.send(cmd_res.encode('utf-8'))
print('send done')
server.close()
import socket
import os
client = socket.socket()
client.connect(('localhost',9999))
while True:
cmd=input('>>>:').strip()
if len(cmd) == 0: continue
client.send(cmd.encode('utf-8'))
cmd_res_size=client.recv(1025) #接受命令结果的长度
print('命令结果大小:',cmd_res_size.decode())
receive_size = 0
while receive_size < int(cmd_res_size.decode()):
data = client.recv(1024)
receive_size += len(data)
#print(data.decode())
print(receive_size)
else:
print('cmd res receive done', receive_size)
#print(cmd_res.decode('utf-8'))
client.close()