Nikita_Sergeevich
@Nikita_Sergeevich

Клиент-серверные приложения на Assembler'е

Требуется разработать обычное консольное сетевое приложение на языке ассемблера (не имеет значения MASM, TASM, NASM или др.) с возможностью пересылки сообщений между клиентской и серверной частью по протоколам TCP, UDP и ICMP, при этом желательна реализация receive timeout (ожидать конкретное время после чего выдавать ошибку), send timeout (на отправку сообщения отводится конкретное время), возможность задания TTL вручную, возможность связывания нескольких клиентов с одним портом.

Кто-то может подсказать в каком направлении копать?
Какую литературу посмотреть?
Какие готовые библиотеки для этого существуют?
Существуют ли похожие проекты?

P.S. в свою очередь обещаю за помощь интересную статью Хабру, если всё получится.
  • Вопрос задан
  • 7374 просмотра
Пригласить эксперта
Ответы на вопрос 5
jetman
@jetman
Если хочется использовать ассемблер из-за размера выходного кода, то вы уверены, что в итоге приложение на ассемблере займет много меньший объем кода, чем gcc в режиме -Os?
Если же все это just for fun, то мой вопрос отпадает сам собой.
Ответ написан
@Scioner
Вот готовые примеры для сокетов: forum.sources.ru/index.php?showtopic=186464&st=0&

А вообще, нужно просто знать синтаксис и копать MSDN на тему winsock и threading (в частности — createthread, скорее всего понадобится только он)
Ответ написан
IlyaEvseev
@IlyaEvseev
Opensource geek
Я бы сначала написал прототип на Си (примеров и документации в сети вагон),
сгенерировал ассемблерный текст и затем писал бы собственный вариант на его базе.

Для gcc генерация asm-кода делается ключом "-S":
gcc -S -o myprog. myprog.c
Ответ написан
afiskon
@afiskon
Используйте системные вызовы (сокеты), будет не сложнее, чем написать на Си. Литературы и статей по сокетом много, разберетесь. Если пишите под Windows, попробуйте MASM или FASM. Под *nix лучше NASM.
Ответ написан
AterCattus
@AterCattus
Люблю быстрый backend
win, *nix? Но в любом случае — wasm.ru (когда они там переедут, ну или форум).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы