Корпуса пока делаем на принтере, печатаем либо на заказ, либо у друзей.
от который Сталкер и Метро
bind
. Ты ведь изучил документацию?WSAGetLastError
, согласно документации, вызывать нужно только когда bind
возвращает SOCKET_ERROR
. Только так ты можешь понять, что WSAGetLastError
вернул код ошибки именно от bind
.listen
точно так же. Тебе надо просто лучше обрабатывать ошибки. У тебя реальная ошибка может быть где угодно выше по тексту и ты ее просто проглядел.bind
.listen
относительно кода WSAEINVAL
.WSAEINVAL The socket has not been bound with bind.
Изначально всё работало нормально, но потом что-то изменил, не помню что, и всё работать перестало.
Никогда не видел смысла использования гита в своих проектах
WSAEINVAL
. Это буквально означает что ты передаешь именно в listen
неправильные аргументы. Второй аргумент у тебя не может быть неправильным. Остается вопрос к первому - к сокету.bind
[?] ты ошибку тоже не проверяешь. Стоит это сделать.
Computer Program - правильно составленная последовательность инструкций, которую может выполнить некоторый процессор инструкций чтобы получить результат.
Computer Programming - процесс составления компьютерной программы с целью получения некоторого результата.
Programmer - человек, занимающийся составлением компьютерных программ.
Это - базовая терминология, от которой можно двигаться дальше.
Иными словами, задавая свой вопрос, ты спрашиваешь: действительно ли люди умеют писать слова компьютерных программ?
Да, умеют. Это крайне просто. В 50х годах XX века это было под силу даже студенткам средних курсов ВУЗов. Перебить несколько слов в последовательность опкодов процессора - это тривиально. И в этом суть написания программ.
В словесной или схематической форме программы подготавливают инженеры. Суть работы инженера состоит в правильной формулировке блоков программы, чтобы программа была правильной для целевого процессора и чтобы программа выполняла поставленную задачу.
Это всегда достигалось через постоянную сверку написанного текста с целым набором документов. Для своей работы инженер в любой области всегда сверяется с документами из своей области. Инженер создает алгоритм уже решенной задачи, в этом суть его работы. Умение решать задачи - это тоже навык, который поддается тренировке. Решенную задачу инженеру передает представитель предметной области. Либо это будет аналитик по алгоритмам, либо это будет научный сотрудник непосредственно из предметной области. Постановка задачи происходит тоже в предметной области.
Сегодня эта модель изменилась не так сильно. Просто люди стали немного шире специализированными, а часть человеческого труда заменила автоматизация. Сегодня решать задачи должен уметь уже сам инженер. На аналитиках сегодня экономят. Необходимость всегда сверяться с документацией у инженера никуда не делась. Документация языка, документация используемых библиотек, документация целевых аппаратных решений всегда должна быть под рукой. Контекстная справка и автоподстановка среды разработки сильно облегчают работу с документацией.
Целевой процессор языка сегодня, на котором ты пишешь, это транслятор кода. Это для него ты пишешь программу. Ты пишешь код чтобы получить результат в виде программы на бинарных кодах. Транслятор читает твой текст и составляет оптимальную последовательность опкодов для целевого процессора следующего уровня. Таким образом автоматизация взяла на себя суть действительного написания программы.
Задача инженера-программиста сегодня - это в терминах языка высокого уровня объяснить целевому процессору, другим инженерам и себе самому, какую задачу должен решать целевой процессор во время исполнения программы.