Почему socket() возвращает -1?

124
20 ноября 2019, 21:10

Пытаюсь создать сокет на windows таким образом:

SOCKET sock;
if((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
    cout << "socket() error: " << errno << "\n";

Входит в тело условия. Вывод:

socket() error: 34

Код именно такой, потому что хотел сохранить совместимость с Linux. Подскажите пожалуйста, в чем может быть дело

Answer 1

В MSDN написано что в случае ошибки функция вернет INVALID_SOCKET (-1) и код ошибки можно получить вызовом функции WSAGetLastError.
errno при этом не выставляется т.к. socket это системная функция и она ничего не знает про errno.

И скорее всего там ошибка WSANOTINITIALISED - не вызвана функция WSAStartup.

READ ALSO
Как узнать какие элементы были изменены функцией?

Как узнать какие элементы были изменены функцией?

Задача может показаться странной, но у нее есть практическое применение

157
Полоса прокрутки на форме в Qt?

Полоса прокрутки на форме в Qt?

Как добавить полосу прокрутки на форму в Qt? Добавил verticalScrollBar на формуКак его активировать? Подскажите пожалуйста)

101
Ошибка исполнения задачи [закрыт]

Ошибка исполнения задачи [закрыт]

Выдает ошибку исполнения задачиУ меня на компиляторе все результаты тестов совпадают, а система выдает "ошибка исполнения"

140
Как правильно описать бизнес процесс (ddd)?

Как правильно описать бизнес процесс (ddd)?

Есть бизнес, в котором пользователь, зарегистрировавшись (используя почту и пароль) может получить консультацию специалиста в неком чате

136