Содержание


Утилита udpio

Здесь расположена диагностическая утилита udpio, созданная для
запуска сервера или клиента, работающего с сообщениями (датаграммами) UDP.

Утилита кроссплатформенная (Linux и Windows), написана на чистом C.

Перейти к Содержанию


Назначение

Утилита udpio:

Перейти к Содержанию


Опции вызова

Общая схема вызова: unix udpio [-option [value]] …

Перейти к Содержанию


Опция --version

Опция --version печатает версию программы:

> unix udpio --help
udpio version 1.0

Перейти к Содержанию


Опция --help

Опция --help печатает справку по программе:

> unix udpio --help
udpio version 1.0
Copyright (c) 2026 Alex Kuryakin daqgroup@mail.ru
Utility to send/receive UDP datagrams.
Usage: udpio [options]
Options:
 -client       - run as client
 -server       - run as server
 -host IP      - set host IP address for bind|connect
                 address "*" means 0.0.0.0 on server
                 (any interface) or 255.255.255.255 
                 on client (broadcast).
 -port N       - set port number N in range 1..65535
 -send line    - add line to message to send to host
 -loop n       - try loop n times, n=0 is forever
 -rcvtimeo ms  - set recv timeout ms, milliseconds
 -sndtimeo ms  - set send timeout ms, milliseconds
 -rcvmode m    - set recv printing mode m (str|hex|HEX)
 -sndmode m    - set send printing mode m (str|hex|HEX)
Examples:
 udpio -server -host "*" -port 5000 -send "Reply!" -send "Done" -loop 0 -sndmode hex -rcvmode hex
 udpio -client -host "*" -port 5000 -send "Hello world!" -send "Ok" -loop 1 -rcvtimeo 10000 -sndtimeo 10000
 printf "Hello world.\nI am Ok.\n" | udpio -client -host "*" -port 5000 -loop 1 -rcvtimeo 10000 -sndtimeo 10000

Перейти к Содержанию


Опция --server

Опция --server задает режим работы в качестве сервера.
Сервер “слушает” сеть и отвечает на запросы от клиентов.
Это определяет логику работы программы.

При вызове необходимо указать режим работы (клиент или сервер),
иначе возникнет ошибка.

Перейти к Содержанию


Опция --client

Опция --client задает режим работы в качестве клиента.
Клиент посылает запросы заданному серверу и получает ответы.
Это определяет логику работы программы.

При вызове необходимо указать режим работы (клиент или сервер),
иначе возникнет ошибка.

Перейти к Содержанию


Опция --host IP

Опция --host IP задает IP адрес или имя сервера.

Для сервера указывается адрес привязки (bind), который
будет “прослушивать” сервер. Часто этот адрес задается в виде
строки "*", что означает 0.0.0.0 - “любой адрес”,
что означает, что прослушиваться будут все сетевые интерфейсы.

Для клиента указывается адрес сервера, куда будет подключаться
(connect) клиент. Это может быть IP адрес или имя сервера,
прописанное в hosts или зарегистрированное в DNS.
Для посылки широковещательных сообщений этот адрес задается в виде
строки "*", что означает 255.255.255.255 - “любой адрес”,
что означает, что сообшение будет послано всем компьютерам в сети.

Перейти к Содержанию


Опция --port N

Опция --port N задает IP порт обслуживания.
Допустимые порты - числа в диапазоне [1 … 65535].

Перейти к Содержанию


Опция --send "line"

Опция --send "line" задает строку текста line для посылки в сеть.
Строк может несколько, они собираются в один текст, разделенный EOL.

Для сервера это текст сообщения, который он посылает клиентам в ответ на запросы.

Для клиента это текст сообщения - запроса, который он посылает серверу.

Для задания сообщения вместо -send … можно использовать запись в канал.
Это более предпочтительный способ, т.к. канал позволяет передавать произвольные
двоичные данные, а не только текст.

Перейти к Содержанию


Опция --loop N

Опция --loop N задает одноразовый, многоразовый или циклический режим работы.

Перейти к Содержанию


Опция --rcvtimeo T

Опция --rcvtimeo T задает таймаут (миллисекунд)
для ожидания при приеме датаграмм UPD.

Перейти к Содержанию


Опция --sndtimeo T

Опция --sndtimeo T задает таймаут (миллисекунд)
для ожидания при передаче датаграмм UPD.

Перейти к Содержанию


Опция --rcvmode M

Опция --rcvmode M задает режим вывода принятых сообщений:

Перейти к Содержанию


Опция --sndmode M

Опция --sndmode M задает режим вывода посланных сообщений.
Работает аналогично --rcvmode M.

Перейти к Содержанию


Примеры

# Запускаем СЕРВЕР в одной консоли:

unix udpio -server -host "*" -port 5000 -send "Reply!" -send "Done" -loop 0 -rcvmode hex -sndmode hex

# Запускаем КЛИЕНТ в другой консоли (сообщение в аргументах):

unix udpio -client -host "*" -port 5000 -send "Hello world! I am UDP client." -send "Ok" -loop 1 -rcvtimeo 10000 -sndtimeo 10000

# Другой способ запуска КЛИЕНТА (сообщение передается по каналу):

printf "Hello world! I am UDP client.\nOk" | unix udpio -client -host "*" -port 5000 -loop 1 -rcvtimeo 10000 -sndtimeo 10000

# В окне консоли КЛИЕНТА:

### Sent 32 byte(s) to [255.255.255.255:5000]:
Hello world! I am UDP client.
Ok
### Recv 11 byte(s) from [192.168.0.80:5000]:
Reply!
Done

# В окне консоли СЕРВЕРА:

### Recv 32 byte(s) from [192.168.0.80:47831]:
0000: 48 65 6c 6c 6f 20 77 6f 72 6c 64 21 20 49 20 61 | Hello.world!.I.a |
0010: 6d 20 55 44 50 20 63 6c 69 65 6e 74 2e 0a 4f 6b | m.UDP.client..Ok |
### Sent 11 byte(s) to [192.168.0.80:47831]:
0000: 52 65 70 6c 79 21 0a 44 6f 6e 65                | Reply!.Done      |

Перейти к Содержанию


Использование

Пользуйтесь на здоровье.

Перейти к Содержанию


CrwDaq Copyright (с) 2001-2026 DaqGroup