recv_data not defined

import socket
import discord
import threading

client = discord.Client()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("0.0.0.0", 1337))
s.listen(5)


def background():
    global clientsocket, adress, recv_data
    while True:
        clientsocket, address = s.accept()
        print(address[0] + ':' + str(address[1]) + ' connected')
        clientsocket.send(bytes('Connection established.\r\n', encoding="utf-8"))
        recv_data = str(clientsocket.recv(1024), encoding='utf-8')


def foreground():
    @client.event
    async def on_message(message):
        if message.author == client.user:
            return

        if message.content.startswith('/execute_lua'):
            command_splitted = message.content.split(' ')
            if len(command_splitted) > 1:
                clientsocket.send(bytes(' '.join(command_splitted)[1:] + '\r\n', encoding="utf-8"))
                if recv_data.startswith('executed'):
                    sucess_embed = discord.Embed(title='Command executed.', description=recv_data.split(' ')[2])
                    await message.channel.send(sucess_embed)


bg = threading.Thread(name='background', target=background)
fg = threading.Thread(name='foreground', target=foreground)

bg.start()
fg.start()
client.run('')

В таком коде возникает ошибка NameError, якобы переменная recv_data не объявлена, но я ее объявил с global, в чем может быть проблема?И есть вариант не использовать global?Передача данных через отдельный модуль или класс уже пробовал.


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