Многоадресная передача UDP с помощью winsock различия API между XP и Vista

Один год назад я должен реализовать MD4 для своего студенческого тезиса. Здесь это - моя реализация кругового сдвига разряда с помощью UInt32.

private UInt32 RotateLeft(UInt32 x, Byte n)
{
      return UInt32((x << n) | (x >> (32 - n)));
}
5
задан Thomi 6 October 2009 в 11:05
поделиться

2 ответа

Какую ошибку вы получаете из-за вызова 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.

Итак, какую ошибку вы получаете и к какому адресу привязаны?

5
ответ дан 14 December 2019 в 13:41
поделиться

Я не знаю об этом конкретном вопросе, но я знаю, что сетевой стек был переписан с нуля для Vista

1
ответ дан 14 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: