Warum kommt dieser Error?
Hi,
Warum kommt dieser Error bei dem Code?
import socket
def start():
host = socket.gethostname(socket.gethostbyname)
port = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((port, host))
if __name__ == "__main__":
start()
Error:
Traceback (most recent call last):
File "c:\Users\Tobias\OneDrive\Python\Server.py", line 12, in <module>
start()
File "c:\Users\Tobias\OneDrive\Python\Server.py", line 6, in start
host = socket.gethostbyname(socket.gethostname)
TypeError: gethostbyname() argument 1 must be str, bytes or bytearray, not builtin_function_or_method
1 Antwort
BeamerBen
bestätigt
Von
Experte
![](https://images.gutefrage.net/media/user/xxxcyberxxx/1691185806883_nmmslarge__0_0_1230_1230_4dfa4fbf5df5051b1dd22ccc1781adca.png?v=1691185807000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Technik, programmieren, Python
TypeError: gethostbyname() argument 1 must be str, bytes or bytearray, not builtin_function_or_method
sagt doch alles. Du übergibst die Funktion selbst, rufst sie nicht auf. Der Fehler ist hier:
host = socket.gethostname(socket.gethostbyname)
Funktionen rufst du mit anschließenden runden Klammern auf, der Aufruf muss also so sein:
host = socket.gethostname(socket.gethostbyname())
was das jedoch soll, erschließt sich mir nicht. Erstens verlangt gethostbyname noch einen Übergebenen Hostnamen, zweitens hat gethostname keine Parameter ...
Sicher, dass du das nicht andersrum aufrufen wolltest?
socket.gethostbyname(socket.gethostname())