Скорее всего, это проблема не инициализации переменных к какому-либо начальному значению, поэтому при отладке они имеют какое-то значение, но при выпуске большинство вещей инициализируется нулем (NULL). Таким образом, может иметь место некоторое условие / ветвление, которого вы не ожидаете ... Без вашего исходного кода, например, ДЕЙСТВИТЕЛЬНО трудно обнаружить проблемы.
Это меня несколько раз укусило .. :)
Предполагается, что вы не ожидаете увидеть что-либо, использующее такие вещи, как OutputDebugString (), как Mehrdad Рекомендуется ...
Кроме того, убедитесь, что ваши пакеты имеют размер менее 1024 байт, иначе вы их НЕ получите. Мне потребовалось некоторое время, чтобы разобраться с этим, когда вышла XP, и я не мог понять, почему мой код работал на 2000, а не на XP ... Хотя send (sendto) вернул бы успех, он на самом деле никогда не отправлял пакет ..
В любом случае, я много работал с UDP на Win32, поэтому, если вы дадите мне пример кода, я смогу помочь больше ...
Но в любом случае, проверьте, что ВСЕ ваши переменные инициализированы как-то по умолчанию как для отправителя, так и для получателя (что является хорошей практикой), а затем пересоберите его и попробуйте снова. Кроме того, проверьте размер вашего пакета с помощью sizeof () перед его отправкой, и если он больше 1024 байт, не беспокойтесь ... Это также хорошая идея, чтобы проверить размер полученного пакета, и если это не совсем размер Вы ожидаете, тогда отбросьте пакет. Это относится БОЛЬШЕ к трансляциям, но все еще применяется.
Дайте мне знать, если что-то из этого помогло, я опубликовал много UDP-кода на еще один вопрос здесь некоторое время назад, и этот код работает, вы можете обратиться к нему.