Ошибка типа: socket.bind() принимает ровно один аргумент (2 задано)

#python-sockets

Вопрос:

 from socket import *

def main ():
    print('''========================================================================== ''')
    print('''  [-]   S T A R T I N G      T H E        D E C O Y        S E R V E R  [-] ''')
    print('''========================================================================== ''')
    ip_add = "192.168.43.195"
    port = 80
    try :
        socket_connection=socket(AF_INET,SOCK_STREAM)
        socket_connection.bind(port,ip_add)
        socket_connection.listen(10)
        while 1 :
            attacker_connection,attacker_addr = socket_connection.accept()
            print("Decoy Server Is Created on The Attacker".format(attacker_addr[0]))
            attacker_connection.send(b"<h1> Unable to connect from The server Please Check Your Network Connection </h1>")
            data = attacker_connection.recv(3072)
            print(data)
    except error as identifier:
        print("An Error Was Encounterd While Deploying A Decoy Server".format(identifier))
    except KeyboardInterrupt as ky :
        print("Decoy Server Stopped By The User")
        print(" [ ]..../ Exiting ....[ ] ")
    finally:
        socket_connection.close()
if __name__ == '__main__':
      main()
 

Это мой код,всякий раз, когда я запускаю программу, она показывает, что bind() принимает ровно один аргумент, как привязать ipadd (), порт в двух аргументах

Ответ №1:

Тебе нужно позвонить

 socket_connection.bind((ip_add,port))
 

Это означает передачу кортежа функции (она получает один аргумент, указывающий конечную точку, которая является парой/кортежем).

Пожалуйста, ознакомьтесь с рекомендациями по публикациям здесь.