Чтение онлайн

на главную - закладки

Жанры

UNIX: разработка сетевых приложений
Шрифт:

4. Сервер-получатель (рис. В.3).

Рис. В.3. Программа sock в качестве сервера-получателя

Программа осуществляет фиксированное количество считываний из сети.

Эти четыре рабочих режима соответствуют следующим четырем командам:

sock [ параметры] узел служба

sock [ параметры] -s [ узел] служба

sock [ параметры] -i узел
служба

sock [ параметры] -is [ узел] служба

где узел— это имя или IP-адрес узла, а служба— это имя или номер порта. В двух серверных режимах выполняется связывание с универсальным адресом, если не задан необязательный параметр узел.

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

– b n связывает n в качестве клиентского локального номера порта

– с конвертирует символ новой строки в CR/LF и наоборот

– f a.b.c.d.p удаленный IP-адрес = a.b.c.d, удаленный номер порта = р

– g a.b.c.d свободная маршрутизация

– h половинное закрытие TCP при получении EOF из стандартного потока ввода

– i отправка данных на сокет, прием данных с сокета (w/-s)

– j a.b.c.d присоединение к группе многоадресной передачи

– k осуществляет write или writev порциями

– l a.b.c.d.p клиентский локальный IP-адрес = a.b.c.d. локальный номер порта = р

– n n размер буфера для записи клиентом "рассылки" (по умолчанию 1024)

– о НЕ присоединять UDP-клиент

– р n время ожидания (в мс) перед каждым считыванием или записью (рассылка/прием)

– q n размер очереди на прослушиваемом сокете для сервера TCP

(по умолчанию 5)

– r n количество байтов за одну операцию считывания (read) для сервера "приема"

(по умолчанию 1024)

– s работает как сервер, а не как клиент

– u использовать UDP вместо TCP

– v
подробный вывод

– w n количество байтов для каждой записи (write) клиента "рассылки"

(по умолчанию 1024)

– x n время (в ms) для SO_RCVTIMEO (получение тайм-аута)

– y n время (в ms) для SO_SNDTIMEO (отправка тайм-аута)

– A параметр SO_REUSEADDR

– B параметр SO_BROADCAST

– D параметр SO_DEBUG

– E параметр IP_RECVDSTADDR

– F порождение дочерних процессов (fork) после установления соединения

(параллельный TCP-сервер)

– G a.b.c.d жесткая маршрутизация

– H n параметр IP_TOS (16=min del, 8=max thru, 4=max rel, 2=min cost)

– I сигнал SIGIO

– J n параметр IP_TTL

– K параметр SO_KEEPALIVE

– L n параметр SO_LINGER, n = linger time

– N параметр TCP_NODELAY

– O n время (в мс) для ожидания после вызова listen, но перед первым приемом (accept)

– Р n время (в мс) перед первым считыванием или записью (рассылка/прием)

– Q n время (в мс) ожидания после получения FIN, но перед закрытием

– R n параметр SO_RCVBUF

– S n параметр SO_SNDBUF

– Т параметр SO_REUSEPORT

– U n войти в срочный режим, прежде чем записать число n (только для отправителя)

– V использовать writev вместо write: включает -k

– W игнорировать ошибки записи для клиента приема

– X n параметр TCP_MAXSEG (устанавливает MSS)

– Y параметр SO_DONTROUTE

– Z MSG_PEEK

– 2 параметр IP_ONESBCAST (255.255.255.255) для широковещательной передачи

В.4. Небольшие тестовые программы

Другим полезным методом отладки, которым автор пользовался при написании книги, является создание небольших тестовых программ, позволяющих увидеть, как работает одно конкретное свойство в тщательно выстроенной тестовой ситуации. При написании небольших тестовых программ полезно иметь набор библиотечных функций-оберток и некоторых простых функций вывода сообщений об ошибках, наподобие тех, что использовались на протяжении всей книги. Такой подход уменьшает размер создаваемого кода и в то же время обеспечивает требуемую проверку ошибок.

Поделиться:
Популярные книги

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

Хозяин Теней 4

Петров Максим Николаевич
4. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 4

Картофельное счастье попаданки

Иконникова Ольга
Фантастика:
фэнтези
5.00
рейтинг книги
Картофельное счастье попаданки

Экзорцист: Проклятый металл. Жнец. Мор. Осквернитель

Корнев Павел Николаевич
Фантастика:
фэнтези
героическая фантастика
5.50
рейтинг книги
Экзорцист: Проклятый металл. Жнец. Мор. Осквернитель

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Хозяин Теней 2

Петров Максим Николаевич
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 2

Сумеречный стрелок 7

Карелин Сергей Витальевич
7. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок 7

Жизнь под чужим солнцем

Михалкова Елена Ивановна
Детективы:
прочие детективы
9.10
рейтинг книги
Жизнь под чужим солнцем

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец