НЕ существующая IndexError в сервере

ErrorLog:

  File "???\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "???\Python\Python38\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "main.py", line 27, in th_listen_user
content = data.split('\n'.encode('utf-8'))[3]
IndexError: list index out of range

ServerCode:

import socket 

import threading as th

server = socket.socket(
    socket.AF_INET,
    socket.SOCK_STREAM
)

server.bind(('127.0.0.1',8000))
server.listen(100)
USERS = {}
Exit = 0 
def th_listen_user(user,adress):
    try:
        while True:
            data = user.recv(2048)
            ip = data.split('\n'.encode('utf-8'))[0].decode('utf-8')
            port = int(data.split('\n'.encode('utf-8'))[1].decode('utf-8'))

            part = data.split('\n'.encode('utf-8'))[2]
            content = data.split('\n'.encode('utf-8'))[3]
            print(data.split('\n'.encode('utf-8'))) #check Log
            print(data)
            print(ip,port,part,content)


    except ConnectionResetError:print(f'<{adress[0]}:{adress[1]}> DISCONNECTED')



def start_server():
    global Exit
    while Exit==0:
        user_socket,adress = server.accept()
        print(f'<{adress[0]}:{adress[1]}> CONNECTED')


        USERS[adress] = user_socket
        th_func = th.Thread(target = th_listen_user,args = (user_socket,adress))
        th_func.start()
        print(USERS)

Log:

[b'127.0.0.1', b'9001', b'1', b'gAAAAABhitL94rJt4tAINg5Y1av_hY7YitgnrJD12pgNev6gjomZcYam9_VYQOZIR3Hyg-4mmPAyCKON2JZ3PSG9FHcQZLM_IyJZTAgFexlKc6UG1oVIBCo=']

b'127.0.0.1\n9001\n1\ngAAAAABhitL94rJt4tAINg5Y1av_hY7YitgnrJD12pgNev6gjomZcYam9_VYQOZIR3Hyg-4mmPAyCKON2JZ3PSG9FHcQZLM_IyJZTAgFexlKc6UG1oVIBCo='

127.0.0.1 9001 b'1' b'gAAAAABhitL94rJt4tAINg5Y1av_hY7YitgnrJD12pgNev6gjomZcYam9_VYQOZIR3Hyg-4mmPAyCKON2JZ3PSG9FHcQZLM_IyJZTAgFexlKc6UG1oVIBCo='

Я не понимаю из-за чего у меня возникает IndexError. Всё работает правильно. В логах печатается content, но в ошибке говорится что мол его не существует, причём ошибка возникает уже после выполнения кода. И это всё так или иначе связано с threading. Я пишу приложение чата.


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