Python TypeError: eine ganze Zahl ist erforderlich beim arbeiten mit Sockets
Forschung:
Immer eine "TypeError: eine ganze Zahl ist erforderlich" in meinem Skript
https://github.com/faucamp/python-gsmmodem/issues/39
https://docs.python.org/2/howto/sockets.html
Hier ist meine komplette Fehlerausgabe:
Traceback (most recent call last):
File "/home/promitheas/Desktop/virus/socket1/socket1.py", line 20, in <module>
createSocket()
File "/home/promitheas/Desktop/virus/socket1/socket1.py", line 15, in createSocket
ServerSock.bind((socket.gethostname(), servPort))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
TypeError: an integer is required
Code:
import socket
# Acquiring the local public IP address
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 0))
# Defining some variables
servIpAddr = s.getsockname()[0]
servPort = ''
while ((len(servPort) < 4)): # and (len(servPort) > 65535)
servPort = raw_input("Enter server port. Must be at least 4 digits.\n> ")
# Creating a socket to wait for a connection
def createSocket():
ServerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ServerSock.bind((socket.gethostname(), servPort)) # This is where the error occurs
ServerSock.listen(5)
(clientsocket, address) = ServerSock.accept()
if __name__ == "__main__":
createSocket()
Ich bin mir nicht sicher, ob es irgendwelche anderen Fehler, aber ich bin echt ratlos. Bitte Fragen Sie, ob Sie irgendeine andere info, und vielen Dank im Voraus!
InformationsquelleAutor mee | 2015-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie das zweite element der Adresse-Tupels muss eine ganze Zahl sein. Aus der Dokumentation:
Versuchen Sie die Konvertierung
servPort
eine Ganzzahl, bevor Sie es inbind
.das klappt perfekt. Dank
InformationsquelleAutor Kevin
servPort
muss eine Ganzzahl sein. Sie derzeit haben es eingestellt, um eine Zeichenfolge, die der Benutzer eingibt. Versuchen Sie, Gießen Sie die raw_input zu einemint
mitint(servPort)
.InformationsquelleAutor huderlem