Python 如何发送非';带套接字的t字符串?例如,使用客户端截图并将其发送到服务器
我的客户是其中的一部分Python 如何发送非';带套接字的t字符串?例如,使用客户端截图并将其发送到服务器,python,sockets,networking,Python,Sockets,Networking,我的客户是其中的一部分 agreement_ac = s.recv(4096) b = bytes("take a screenshot".encode()) if b in agreement_ac: image = ImageGrab.grab() 我的服务器部分: while True: c, addr = s.accept() cmd_test = input(">>> ") if cmd_test ==
agreement_ac = s.recv(4096)
b = bytes("take a screenshot".encode())
if b in agreement_ac:
image = ImageGrab.grab()
我的服务器部分:
while True:
c, addr = s.accept()
cmd_test = input(">>> ")
if cmd_test == "test":
c.send("take a screenshot".encode())
因此,目前我的应用程序正在做的是,当我启动服务器和客户端连接时,如果我输入“截图”,那么该字符串将被发送到客户端,客户端将对其进行解码以了解它应该做什么,然后它将截图并发送过来。我不明白如何将它发送到服务器并保存到服务器的设备上。例如,客户端获取屏幕截图并将其发送到服务器,服务器将其保存在服务器的桌面上。服务器代码:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print ("Socket successfully created")
port = 12345
s.bind(('', port))
print ("socket binded to %s" %(port))
s.listen(5)
print ("socket is listening")
while True:
c, addr = s.accept()
cmd_test = input(">>> ")
if cmd_test == "test":
c.send("take a screenshot".encode())
temp = c.recv(9000000)
with open('imgs.png','wb') as f:
#print(temp)
f.write(temp)
c.close()
客户端代码:
import socket
import pyscreenshot as ImageGrab
b="take a screenshot"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
port = 12345
s.connect(('127.0.0.1', port))
#s.sendall(str.encode(b))
agreement_ac = str(s.recv(9000000))
#print(agreement_ac)
if b in agreement_ac:
image = ImageGrab.grab()
ImageGrab.grab_to_file('im.png')
with open('im.png','rb') as f:
imgsend = f.read()
s.sendall(imgsend)
#print(image)
s.close()
它会将文件保存在服务器pc上为“imgs.png”。请根据需要更改字节大小。工作时接受:)