Ich verwende Windows 10 und Visual Studio 2016. Ich kann nicht an Port 80 binden. Ich kann an alle anderen Ports binden. Der Fehler gedruckt ist: „Bind der IP-Adresse 0.0.0.0 hat einen Fehler zurückgegeben, Port 80: Kein Fehler“Kann nicht an Port 80 binden
Hier ist mein Code:
/* bind this socket to the server's Internet address */
if(bind(fd,(struct sockaddr *)server_addr,sizeof(struct sockaddr_in))<0)
{
printf("Bind of IP address %s returned an error, port %d: %s\n",
inet_ntoa(server_addr->sin_addr), ntohs(server_addr->sin_port),
strerror(errno));
//close(fd);
return -1;
}
Bitte erklären Sie mir, warum Sie mir hier eine -1 gegeben haben. – eddyq
Sie müssen 'strerror()' aufrufen, bevor Sie andere Systemaufrufe aufrufen. Sie melden hier nicht die Fehlerkorrektur. – EJP
Falsch ... Aufruf von strerror() konvertiert eine Fehlernummer in eine Zeichenfolge. Wenn dies vor dem Systemaufruf erfolgt, wird die falsche Fehlernummer konvertiert. – Eddy