客户端
import socket
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(("localhost",9090))
while True:
cmd=input(">>:").strip().encode("utf_8")
if cmd is not None and cmd!="cmd".encode("utf-8") :
client.send(cmd)
date=client.recv(1024)
print(date.decode("utf-8"))
服务器
import socket,os
servce=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
servce.bind(("localhost",9090))
servce.listen(4)
while True:
conn,addr=servce.accept()
print(addr)
while True:
client_cmd=conn.recv(1024).decode("utf-8")
result=os.popen(client_cmd).read()
if len(result)==0: #如果输入命令不正确时,os.popen()返回的结果时空的字符串也就是 None,不能直接发送,直接发送的话客户端时获取不到服务器的消息的
conn.send("命令错误,请重新输入".encode("utf-8"))
else:
conn.send(result.encode("utf-8"))