Модуль json видает ошибку
server.py
import json
import socket
import base64
import threading
TCP_SIZE = 2048
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('localhost', 55000))
sock.listen()
def handle(client, address):
SCREENSHOT = b""
SCREENRANGECOUNT = 0
while True:
data = client.recv(TCP_SIZE).decode("utf-8")
print(data)
data = json.loads(data)
operation = data["operation"]
print(data, operation)
if operation == "screenshotInfo":
SCREENRANGECOUNT = data["data"]
elif operation == "screenshotData":
SCREENSHOT = SCREENSHOT + base64.b64decode(data["data"].encode("utf-8"))
SCREENRANGECOUNT -= 1
if SCREENRANGECOUNT == 0:
with open("image.png", 'wb') as img:
img.write(SCREENSHOT)
def main():
print('Server is running, please, press ctrl+c to stop')
while True:
client, address = sock.accept()
print("Connected with {}".format(str(address)))
thread = threading.Thread(target=handle, args=(client, address))
thread.start()
if __name__ == "__main__":
main()
client.py
import io
import json
import socket
import base64
import pyautogui
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('localhost', 55000))
for x in range(1):
screen = io.BytesIO()
myscreen = pyautogui.screenshot()
myscreen.save(screen, "PNG")
contents = screen.getvalue()
imageList = [contents[n:n+1048] for n in range(0, len(contents), 1048)]
data = {"operation": "screenshotInfo",
"data": len(imageList)}
sock.send(json.dumps(data).encode("utf-8"))
for x in imageList:
data = {"operation": "screenshotData", "data": base64.b64encode(x).decode("utf-8")}
sock.send(json.dumps(data).encode("utf-8"))
sock.close()
Ошибка:
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Users\Maxim\AppData\Local\Programs\Python\Python39\lib\threading.py", line 980, in _bootstrap_inner
self.run()
File "C:\Users\Maxim\AppData\Local\Programs\Python\Python39\lib\threading.py", line 917, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Maxim\PycharmProjects\test\server.py", line 19, in handle
data = json.loads(data)
File "C:\Users\Maxim\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Users\Maxim\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 1444 (char 1443)
Process finished with exit code -1