/
ParaD
/
Server
Обзор
Документация
Войти
/
ParaD
/
Server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
talk/send_csv.py
71 строка
2 KB
Rayfaga
first_commit
01 мар 2025, 20:02
01 мар 2025, 20:02
c75de2b
Код
Авторство
О чём код?
import socket import csv import threading import time stop_event = threading.Event() def send_csv(file_name, robot_id, stop_event): try: with open(f"./variable_txt/robot{robot_id}/URL_robot{robot_id}.txt", "r") as f: HOST = f.readline().strip() except Exception as e: print(f"Ошибка чтения файла с адресом: {e}") return "NO_CONNECT" PORT = 1024 BUFFER_SIZE = 4096 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket: try: client_socket.connect((HOST, PORT)) except Exception as e: print(f"Ошибка подключения: {e}") return "NO_CONNECT" try: with open(file_name, "r", encoding="utf-8") as csvfile: while not stop_event.is_set(): chunk = csvfile.read(BUFFER_SIZE) if not chunk: break time.sleep(0.5) client_socket.sendall(chunk.encode("utf-8")) except Exception as e: print(f"Ошибка отправки UTF-8: {e}") try: with open(file_name, "r", encoding="windows-1251") as csvfile: while not stop_event.is_set(): chunk = csvfile.read(BUFFER_SIZE) if not chunk: break time.sleep(0.1) client_socket.sendall(chunk.encode("windows-1251")) except Exception as e: print(f"Ошибка отправки Windows-1251: {e}") return "ERROR" return "OK" def start_file_send(file_name, robot_id): sender_thread = threading.Thread(target=send_csv, args=(file_name, robot_id, stop_event)) sender_thread.start() return sender_thread if __name__ == "__main__": file_name = "./talk/send.csv" robot_id = 1 # Пример ID робота sender_thread = start_file_send(file_name, robot_id) try: while True: print("Основной поток работает...") time.sleep(1) except KeyboardInterrupt: stop_event.set() sender_thread.join() print("Программа завершена")