Python клиент-сервер

Есть клиент и сервер. Серверу надо принять сообщение от клиента(клиент вводит только имя,потом отправляет запрос для обработки лог файла,типа C:\Windows\Logs\DISM\dism.log).

import socket, time
import re

# В этом списке собираются подстроки для проверки через in
bad_line_parts = [
    'Standby redo logfile selected for thread'
]
bad_reg_exprs = {
    re.compile('[A-Z][a-z]{2} [A-Z][a-z]{2} \d{1,2} \d\d:\d\d:\d\d \d{4}'),
    # здесь дополнить другими регулярными выражениями, если потребуется
}

def is_fine_line(line):
    return (not any(bad_line_part in line
                    for bad_line_part in bad_line_parts) and
            not any(bad_reg_expr.match(line)
                    for bad_reg_expr in bad_reg_exprs))


host = socket.gethostbyname(socket.gethostname())  # Чтобы не писать ip 'xxx.xxx.x.xxx' , т.к. он может поменяться
port = 9090  # Точно не занят

clients = []  # Список клиентов, их адреса, а не username(для сервера,адреса всегда разные)

s = socket.socket(socket.AF_INET,
                  socket.SOCK_DGRAM)  # 1-сокет TCP, 2- IP, с этим протоколом работаем, т.е. объявляем протокол TCP-Ip в переменную s
s.bind((host, port))  # Объявляем протокол на создание, т.е. на этом хосте и порте будет работы

quit = False  # Переменная qiite нужна для того,чтобы цикл мог прекратиться
print("[ Server Started ]")

while not quit:  # data это сообщение,которые отправляет пользователь, addr-это id пользователя *****
    try:
        data, addr = s.recvfrom(
            1024)  # если addr не находится в клиентах,то к клиенту прибавляем addr, итог список клиентов всегда будет добавляться в clients
        # сервер может принимать до 1 кбайт
        if addr not in clients:
            clients.append(addr)

        itsatime = time.strftime("%Y-%m-%d-%H.%M.%S", time.localtime())  # когда сообщение было отправлено

        print("[" + addr[0] + "]=[" + str(addr[1]) + "]=[" + itsatime + "]/",
              end="")  # выводим адрес с(ip), id пользователя,время
        print(data.decode("utf-8"))  # декодировали,для норм.отображения на сервер

        for client in clients:  # Типа для каждого клиента ,если if выполняется, будет отправка лог
            if addr == client:
                s.sendto(data, client)
    except:  # Если произойдет ошибка, то высветится сообщение и переменная quite станет true
        print("\n[ Server Stopped ]")
        quit = True

s.close()

UPD.

Может быть

A=[]
 for client in clients: 
    if addr == client:
       with open(data, 'r') as log_file:`
           for line in log_file.readlines():
               if is_fine_line(line):
                   A.append(line)
s.sendto(A, client)

Ответы (0 шт):