Tcp сервер в ботах discord.py и c # - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь сделать TCP-сервер диссонирующим ботом, используя python.Поскольку я хочу, чтобы Python был хостом, а C # - клиентом.Сервер Tcp работал хорошо, когда создавался сам, и был успешно подключен к программе c #.Но когда я сделал это внутри программы бота.Сервер работает, но бот не работает вообще.Я исследовал и не нашел ответа или исправить это.Я уверен, что это не так, как это сделать.Я уверен, что это неправильно.

Код TCP

TCP_IP ='127.0.0.1'
TCP_PORT = 8000
BUFFER_SIZE = 1024

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(999)
print("Server started at " + TCP_IP + "on port" + str(TCP_PORT))


try:
    conn, addr = s.accept()
    print("New connection is made")
    print ('connection address:',addr)
    while 1:
        data = conn.recv(BUFFER_SIZE)
        if not data: break
        print ("received data:", data)
        conn.send(data)

        command = data.decode()

        if command == "Kick":
            print("Kick command recivied")
    conn.close
except:
    print("Unexpected error occured")

Discord.py код бота с tcp

Client = discord.Client()


bot = commands.Bot(command_prefix='.')




@bot.event
async def on_ready():
    print ("Logged on as")
    print ("UserName: " + bot.user.name)
    print ("ID : " + bot.user.id)
    import discord; print("Version: " + discord.__version__)
    print("_____________________")



    TCP_IP ='127.0.0.1'
    TCP_PORT = 8000
    BUFFER_SIZE = 1024

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((TCP_IP, TCP_PORT))
    s.listen(999)
    print("Server started at " + TCP_IP + "on port" + str(TCP_PORT))


    try:
        conn, addr = s.accept()
        print("New connection is made")
        print ('connection address:',addr)
        while 1:
            data = conn.recv(BUFFER_SIZE)
            if not data: break
            print ("received data:", data)
            conn.send(data)

            command = data.decode()

            if command == "Kick":
                print("Kick command will be performed")
                @bot.command(pass_context = True)
                async def kick(ctx, user: command):
                    await bot.kick(user)
        conn.close
    except:
        print("Unexpected error occured")

@bot.event
async def on_message(message):
    if message.content.upper().startswith(".PING"):
        await bot.send_message(message.channel, "Pong!")

 bot.run("token")
...