Запуск программы

Запуск программы

Мы запустили клиент и сервер на разных компьютерах с FreeBSD, между которыми был установлен настраиваемый маршрутизатор (рис. 10.4). Маршрутизатор может создавать задержку и сбрасывать часть пакетов. Сначала мы запускаем программу без сброса пакетов на маршрутизаторе.

Рис. 10.4. Тестовая конфигурация сети

Мы запускаем сервер с аргументом 0 в командной строке, благодаря чему сервер не увеличивает номер потока при отправке эхо-ответа.

Затем мы запускаем клиент, передавая ему в командной строке адрес эхо-сервера и дополнительный аргумент, указывающий на необходимость отправки сообщений по всем потокам одновременно.

freebsd4% sctpclient01 10.1.4.1 echo

Echoing messages to all streams

Hello

From str:0 seq:0 (assoc:0xc99e15a0):Hello.msg.0

From str:1 seq:0 (assoc.0xc99e15a0):Hello.msg.1

From str:2 seq:0 (assoc:0xc99e15a0):Hello.msg.2

From str:3 seq:0 (assoc 0xc99e15a0):Hello.msg.3

From str:4 seq:0 (assoc.0xc99e15a0):Hello.msg.4

From str:5 seq:0 (assoc:0xc99e15a0):Hello.msg.5

From str:6 seq:0 (assoc.0xc99e15a0):Hello.msg.6

From str:7 seq:0 (assoc:0xc99e15a0):Hello.msg.7

From str:8 seq:0 (assoc:0xc99e15a0):Hello.msg.8

From str:9 seq:0 (assoc:0xc99e15a0).Hello.msg.9

^D

freebsd4%

В отсутствие потерь при передаче клиент получает ответы сервера в том же порядке, в котором отправляет запросы. Изменим параметры маршрутизатора таким образом, чтобы терять 10% всех пакетов, передаваемых в обоих направлениях, и перезапустим клиент.

freebsd4% sctpclient01 10.1.4.1 echo

Echoing messages to all streams

Hello

From str:0 seq:0 (assoc:0xc99e15a0):Hello.msg.0

From str:2 seq:0 (assoc:0xc99e15a0):Hello.msg.2

From str:3 seq:0 (assoc:0xc99e15a0):Hello.msg.3

From str:5 seq:0 (assoc:0xc99e15a0):Hello.msg.5

From str:1 seq:0 (assoc:0xc99e15a0):Hello.msg.1

From str:8 seq:0 (assoc:0xc99e15a0):Hello.msg.8

From str:4 seq:0 (assoc:0xc99e15a0):Hello.msg.4

From str:7 seq:0 (assoc:0xc99e15a0):Hello.msg.7

From str:9 seq:0 (assoc:0xc99e15a0):Hello.msg.9

From str:6 seq:0 (assoc:0xc99e15a0):Hello msg.6

^D

freebsd4%

Можно проверить, действительно ли сообщения в каждом из потоков доставляются в правильном порядке, если изменить клиента так, чтобы он отправлял по два сообщения в поток. Кроме того, мы добавим к сообщению суффикс с его номером, чтобы отличать эхо-ответы друг от друга. Измененная функция клиента представлена в листинге 10.5.

Листинг 10.5. Изменения в функции sctp_strcliecho

//sctp/sctp_strcliecho2.c

21 for (i =0; i < SERV_MAX_SCTP_STRM; i++) {

22  snprintf(sendline + strsz, sizeof(sendline) - strsz,

23   ".msg.%d 1", i);

24  Sctp_sendmsg(sock_fd, sendline, sizeof(sendline),

25   to, tolen, 0, 0, i, 0, 0);

26  snprintf(sendline + strsz, sizeof(sendline) - strsz,

27   ".msg.%d 2", i);

28  Sctp_sendmsg(sock_fd, sendline, sizeof(sendline),

29   to, tolen, 0, 0, i, 0, 0);

30 }

31 for (i = 0; i < SERV_MAX_SCTP_STRM*2, i++) {

32  len = sizeof(peeraddr);

Первое сообщение: добавление номера и отправка

22-25 Клиент добавляет к первому сообщению его номер, с помощью которого мы сможем отслеживать отправленные сообщения. Затем сообщение отсылается вызовом sctp_sendmsg.

Второе сообщение: добавление номера и отправка

26-29 Номер сообщения изменяется с единицы на двойку, после чего сообщение отсылается по тому же потоку.

Считывание и отображение эхо-ответа

31 Здесь требуется лишь одно незначительное изменение: количество ожидаемых ответов эхо-сервера должно быть удвоено.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Первый запуск программы. Интерфейс ICQ

Из книги Мир общения: ICQ автора Леонтьев Виталий Петрович

Первый запуск программы. Интерфейс ICQ После установки ICQ и перезагрузки компьютера в правом углу вашей панели задач появится скромный цветок с бледными лепестками – ICQ Netdetect Agent.  Значок ICQВ момент вашего входа в Интернет лепестки цветка должны окраситься в ярко-зеленый


Глава 23. Запуск программы

Из книги Секреты сканирования на ПК автора Леонтьев Б К

Глава 23. Запуск программы После установки приложение FineReader будет добавлено в вашу операционную систему, а именно — в меню Пуск, при этом в подменю Программы вы увидите программную группу FineReader.Для запуска программы просто выберите команду ABBYY FineReader Pro ( Office) из меню Пуск к


1.1.3.1. Запуск программы установки Linux

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

1.1.3.1. Запуск программы установки Linux Первым делом нужно настроить компьютер на загрузку с компакт диска. Обычно при запуске компьютера вы видите на экране сообщение:Press DEL to enter SETUP или Press F2 to enter SETUPВ программе SETUP нужно настроить компьютер на загрузку с CD/DVD (рис. 1.2), Если вы


Установка и запуск программы

Из книги Компьютер + мобильник: эффективное взаимодействие автора Гольцман Виктор Иосифович

Установка и запуск программы Перед первым подключением телефона запустим программу установки Setup.exe. При этом последовательно появятся обычные для любых программ установки окна с предложением прочитать и принять пользовательское соглашение, а затем выбрать папку для


Запуск программы под чужим именем

Из книги Тонкости реестра Windows Vista. Трюки и эффекты автора Клименко Роман Александрович

Запуск программы под чужим именем С помощью реестра можно выполнить интересный трюк, который позволяет запускать программы под чужим именем. Например, в окне Запуск программы (Пуск ? Выполнить) вводим Pinball (известная многим игра), но после нажатия кнопки OK открывается


Запуск программы

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Запуск программы Как и любое приложение, разработанное для операционной системы Windows, программу AutoCAD можно запустить несколькими способами. Давайте рассмотрим наиболее распространенные из них.• Использование меню Пуск. Для запуска программы нужно выполнить команду


Первый запуск программы Premiere Pro

Из книги Видеосамоучитель монтажа домашнего видео в Adobe Premiere Pro CS3 автора Днепров Александр Г

Первый запуск программы Premiere Pro Установка программы Premiere Pro на компьютер производится с помощью пошагового мастера. Нужно просто следовать указаниям на экране.Запустим программу Premiere Pro и создадим новый проект, чтобы далее познакомиться с интерфейсом программы.1. Нажмите


1.2. Запуск программы Microsoft Word

Из книги Word 2007.Популярный самоучитель автора Краинский И

1.2. Запуск программы Microsoft Word Запустить программу Microsoft Word можно несколькими способами:• выполнить команду Пуск ? Программы ? Microsoft Office ? Microsoft Office Word 2007;• щелкнуть на ярлыке Word на панели быстрого запуска;• дважды щелкнуть на ярлыке Word на Рабочем столе. Внимание! Ярлыки на


4.3 Запуск программы разметки

Из книги Руководство по переходу на Ubuntu 10.04 LTS «Lucid Lynx» автора Неворотин Вадим

4.3 Запуск программы разметки Вообще говоря, вы можете использовать любую программу разметки, например, Partition Magic или Acronis Disk Director Suite, однако я буду рассказывать про входящую в состав Ubuntu утилиту Gparted.Надеюсь, вы ещё не вышли из запущенной с LiveCD Ubuntu. Если это не так, то снова


Урок № 3. Запуск программы

Из книги 1С: Бухгалтерия 8 с нуля. 100 уроков для начинающих автора Гладкий Алексей Анатольевич

Урок № 3. Запуск программы После того как программа установлена, в меню Пуск будет создана ее программная группа. Для запуска программы предназначена команда 1С Предприятие. Рекомендуется для удобства работы вывести ярлык запуска на рабочий стол, используя для этого


Запуск новой программы

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Запуск новой программы Запуск новой программы осуществляется с помощью системного вызова exec(2). Напомним, что при этом создается не новый процесс, а новое адресное пространство процесса, которое загружается содержимым новой программы. Если процесс был создан вызовом


Запуск программы

Из книги автора

Запуск программы Мы запустили эхо-сервер SCTP без аргументов командной строки на компьютере, работающем под управлением FreeBSD. Клиенту при запуске необходимо указать IP-адрес сервера.freebsd4% sctpclient01 10.1.1.5[0]Hello                                     Отправка сообщения по потоку


Запуск программы

Из книги автора

Запуск программы Мы запустили клиент и сервер на разных компьютерах с FreeBSD, между которыми был установлен настраиваемый маршрутизатор (рис. 10.4). Маршрутизатор может создавать задержку и сбрасывать часть пакетов. Сначала мы запускаем программу без сброса пакетов на


Запуск измененной программы

Из книги автора

Запуск измененной программы Запустив сервер и измененный клиент, мы получаем следующий результат:freebsd4% sctpclient01 10.1.4.1 echoEchoing messages to all streamsHelloFrom str:0 seq:0 (assoc:0xc99e15a0):Hello.msg.0 1From str:0 seq:1 (assoc:0xc99e15a0):Hello.msg.0 2From str:1 seq:0 (assoc:0xc99e15a0):Hello.msg.1 1From str:4 seq:0 (assoc:0xc99e15a0):Hello.msg.4 1From str:5 seq:0 (assoc:0xc99e15a0):Hello.msg.5


Запуск программы

Из книги автора

Запуск программы Мы запускаем клиент и отправляем одно сообщение.FreeBSD-lap: ./sctpclient01 10.1.1.5[0]HelloFrom str:1 seq:0 (assoc:c99e15a0):[0]HelloControl-DFreeBSD-lap:Сервер отображает сообщения обо всех происходящих событиях (приеме входящего соединения, получении сообщения, завершении