The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Rust 1.60"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Выпуск языка программирования Rust 1.60" +/
Сообщение от PnD (??), 11-Апр-22, 12:26 
> Как ты сетью работать собрался из go? С raw сокетами, tcp пакетами?

Не совсем понял в чём трагедия?
Для tcp/udp есть вполне рабочая библиотека "net". Битовая арифметика — считается не хуже чем с C. Вот например обработка кусочка сетевого пакета:
"""
    crc32_bytes := BUFFER.data[length-4 :]
    crc32_frame := uint32(crc32_bytes[0])
    crc32_frame |= uint32(crc32_bytes[1]) << 8
    crc32_frame |= uint32(crc32_bytes[2]) << 16
    crc32_frame |= uint32(crc32_bytes[3]) << 24
    if crc32.ChecksumIEEE(BUFFER.data[:length - 4]) != crc32_frame { // Invalid CRC
        if *DEBUG { xl.Debug("Invalid CRC") }
        return
    }
"""
* Как видим, "в лоб" (как на C) у меня перекастовать не вышло и пришлось "запинать ногами".
Но это как раз наименее удачное место обработчика (зато пример хороший). И я не специализируюсь как программист (есть же варианты пролезть через unsafe).

Для raw нету готового? А вот уже́ и есть https://github.com/golang/net/blob/master/internal/socket/ra...

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск языка программирования Rust 1.60, opennews, 07-Апр-22, 21:12  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру