2016-09-19 2 views
-1

Я использую Windows 10 и Visual Studio 2016. Я не могу привязываться к порту 80. Я могу привязываться ко всем другим портам. Ошибка Печатаемая: «Bind из IP-адреса 0.0.0.0 не возвратила ошибку, порт 80: Нет ошибок»Не удается привязать к порту 80

Вот мой код:

/* 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; 
} 
+0

Пожалуйста, объясните, почему вы дали мне -1 здесь. – eddyq

+0

Перед вызовом любых других системных вызовов вам нужно вызвать 'strerror()'. Вы не сообщаете об ошибке здесь. – EJP

+0

Неверный ... вызов strerror() преобразует номер ошибки в строку. Если это делается до системного вызова, оно преобразует неверный номер ошибки. – Eddy

ответ

0

Использование «NetStat -o -q -a -n ". Затем используйте диспетчер задач и посмотрите вкладку «Сведения». Нажмите, чтобы отсортировать PID как низкий, так и высокий. Найдите PID и обратите внимание на название программы, в которой открыт порт. В моем случае система прослушивает порт 80, и поскольку вы не можете убить систему, вы в принципе не можете привязываться к порту 80.

1

Ну, вы можете использовать NetStat, чтобы увидеть, если кто-то другой слушает, обратитесь к этой статье:

https://technet.microsoft.com/en-us/library/bb490947.aspx

Найти, какой процесс уже использует порт 80 и остановить его.

Вы также должны быть администратором или явным образом предоставить доступ к пользователю вы работаете, как если бы вы связываете порт < 1024. Смотрите здесь

HttpListener Access Denied

+0

netstat ничего не показывает с помощью порта 80 – eddyq

Смежные вопросы