Как мне вычислить полученные интервалы с сервера и отправить обратно соответствующий ответ?

#python-3.x #sockets

#python-3.x #сокеты

Вопрос:

Я создал клиент в python3, где я могу получать данные с сервера, и выходные данные отображаются в виде столбца чисел, но тип данных — строка. Итак, пока я делаю это, мне нужно будет преобразовать столбец чисел, который является строкой, в целое число, чтобы выполнить какие-либо вычисления. Однако вот последний код, который я выполнил, и ошибки, которые я получил, показали, что индекс находится вне диапазона.

 import socket
import re

SERVER_HOST = "<name of server>"
SERVER_PORT = <port number>
BUFFER_SIZE = 1024

host = socket.gethostbyname(SERVER_HOST)
port = SERVER_PORT

server = socket.socket()
server.connect((host, port))

while True:
    data = server.recv(1024)
    print(data)
    res = [int(i) for i in data.split() if i.isdigit()]
    print(str(res))

    multiply_data = int(res[0]) * int(res[1])
    print(multiply_data)

    divide_data = multiply_data / int(res[2])
    print(divide_data)

    server.sendall(str(divide_data))
server.close()
  

Я вижу вывод чисел, и строки превратились в массив чисел, и вычисление выполняется, но оно вернуло ошибку в строке, где я умножаю первые два индекса, и ошибка гласит «индекс списка вне диапазона».

Комментарии:

1. Можете ли вы также опубликовать вывод и обратную трассировку ошибки?

2. Он просто говорит: Трассировка (последний последний вызов): Файл «server.py «, строка 20, в <module> multiply_data = int(res[0]) * int (res[1]) Ошибка индекса: список индексов вне диапазона

3. Пожалуйста, обновите выходные данные (включая все отпечатки), строку, полученную в разделе «данные», и обратную трассировку, о которой идет речь. чтобы другим было полезно помочь вам.