Существуют ли сетевые функции преобразования в С#? Гуглинг и не находят много.: P
Ntohs() и ntohl() эквивалентно?
Ответ 1
IPAddress.HostToNetworkOrder
и IPAddress.NetworkToHostOrder
?
Каждый метод имеет перегрузки для 16, 32 и 64-битных целых чисел.
Ответ 2
@jon-skeet answer является наиболее точным в соответствии с вашим вопросом. Тем не менее, функции "ntoh_" и "hton_" C широко используются для перевода между миниатюрными и большими компьютерными архитектурами.
Если ваше намерение выполнять преобразования endianess, существует класс BitConverter (статический класс в сборке ядра), который приносит вам более подходящий путь. Специально, когда:
- Работа с массивом байтов (широко используется в файлах или сетевых потоках).
- Обнаружение архитектуры endianess среды выполнения.
- Преобразование базовых структур за пределы целых чисел (булевых, десятичных знаков) без придания типов.
- Ваш код не связан с сетевыми операциями (пространство имен System.Net).