В Linux сокет представлен файловым дескриптором типа int. В Winsock используется SOCKET; его нельзя безусловно считать обычным файловым дескриптором или хранить в int.
Чем в Windows и Linux отличаются представления сокета?
В Linux сокет представлен файловым дескриптором типа int. В Winsock используется SOCKET; его нельзя безусловно считать обычным файловым дескриптором или хранить в int.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Linux сокет представлен файловым дескриптором типа int. В Winsock используется SOCKET; его нельзя безусловно считать обычным файловым дескриптором или хранить в int.
В Linux ошибка создания обозначается -1, а закрытие выполняется через close. В Winsock проверяют INVALID_SOCKET и используют closesocket; причину ошибки получают через WSAGetLastError.
При переносе кода вынесите тип дескриптора, недопустимое значение и закрытие в платформенную обёртку. Одинаковое назначение сетевых API не означает одинаковую модель дескрипторов.
Источник: learn.microsoft.com.