Один год назад я должен реализовать MD4 для своего студенческого тезиса. Здесь это - моя реализация кругового сдвига разряда с помощью UInt32.
private UInt32 RotateLeft(UInt32 x, Byte n)
{
return UInt32((x << n) | (x >> (32 - n)));
}
Какую ошибку вы получаете из-за вызова setsockopt ()
, который вы делаете для применения IP_ADD_MEMBERSHIP
и присоединения к группе многоадресной рассылки?
Я только что провел здесь несколько тестов с моя серверная структура, и я отмечаю, что я ДЕЙСТВИТЕЛЬНО вызываю bind ()
в Windows 7 (у меня нет коробки Vista под рукой), и я могу присоединиться к группе многоадресной рассылки, как и ожидалось, пока оба адрес привязки и адрес многоадресной рассылки действительны.
Однако я не могу вызвать bind () с INADDR_ANY
, так как это приводит к сбою присоединения к группе многоадресной рассылки с ошибкой 10022 ( WSAEINVAL
) и если адрес группы многоадресной рассылки не указан Если адрес многоадресной рассылки допустим, вызов завершается ошибкой 10049 ( WSAEADDRNOTAVAIL
). Что все кажется достаточно справедливым.
Я сейчас загружаю Windows XP ...
[Отредактировано после тестирования в XP]
В XP разрешено использовать bind ()
в INADDR_ANY
и использовать недопустимые адреса многоадресной рассылки. Итак, я полагаю, вы делаете одно из этих действий, и поэтому оно работает на XP, а не на Vista / Win7.
Итак, какую ошибку вы получаете и к какому адресу привязаны?
Я не знаю об этом конкретном вопросе, но я знаю, что сетевой стек был переписан с нуля для Vista