В элементе sa_data для IPv4 в Windows я обнаружил, что первые два байта содержат номер порта, а следующие четыре содержат IP-адрес.
Например, если я разрешу адрес 228.0.0.1:9995
, членом sa_data является ...
27 0b e4 00 00 01 00 00 00 00 00 00 00 00
Здесь 270b
- это представление шестнадцатеричного значения 9995 в первых двух байтах.Следующие четыре байта являются IP-адресом, где 0xe4
равен 228, затем два нуля, затем 0x01
или 228 0 0 1.
Последние восемь байтов не используются, что соответствует приведенному выше комментарию только опервые шесть байтов используются.
Обратите внимание, что sa_data будет различаться по формату в зависимости от используемого протокола.