Хорошие чтения по программированию на Unix/Linux?
хотя я не работал с сокетами профессионально, я нахожу их интересными. Я прочитал некоторую часть сетевого программирования Unix Ричардом Стивенсом (считается Библией, которую я предполагаю, поскольку она упоминается всеми, кого я прошу), но проблема заключается в том, что для примера требуется универсальный заголовок unp.h, который используется PIA.
Могут ли некоторые из вас предложить хорошее чтение для программирования сокетов в Unix/Linux? Учитывая, что я относительно опытный C/С++-кодер.
Ответы
Ответ 1
Каноническая ссылка - это сетевое программирование UNIX У. Ричарда Стивенса. upn.h - действительно просто вспомогательный заголовок, чтобы сделать примеры книг более ясными - он не делает ничего особенно волшебного.
Чтобы быстро и быстро встать и работать, трудно пройти мимо Beej Guide to Network Programming с использованием интернет-сокетов.
Ответ 2
Я использовал Beej Руководство по сетевому программированию
На каждом этапе пути существует множество примеров кода клиента и сервера с пояснениями.
Ответ 3
Вот онлайн-учебник по темам C и Linux Socket.
Ответ 4
APUE - это хороший способ познакомить вас с средой unix, а также с программированием на C в контекст unix, чтобы вы могли перейти к программированию сокетов.
Ответ 5
Помимо уже упомянутых книг Stevens, я нашел следующие два, чтобы быть действительно хорошими и относительно короткими, читал для проблем программирования TCP/IP (особенно ошибок и общих ошибок):
После этого вы, вероятно, захотите прочитать исходный код для сетевых приложений. Хорошая отправная точка - различные утилиты и приложения linux.
Ответ 6
Вы можете ссылаться на статью, которую я написал, когда я преподавал курс обучения в области компьютерных наук, Основы компьютерных сетей, на ufl.edu давным-давно: "A Crash Course в Unix TCP/IP Socket Programming" .
Документ старый. Я поражен тем, что, когда я обрушился на это, там еще полдюжины ссылок на него.
Некоторые из семантики компилятора и необходимые файлы заголовков, возможно, немного изменились за эти годы, но основы настройки сокетов UDP или TCP и обсуждение основных элементов DNS по-прежнему актуальны и сегодня.
Удачи!
Ответ 7
Это, по-видимому, классическая дилемма болота в бассейне или прыгающая голова сначала в глубокий конец.
FWIW Я считаю, что код оболочки Стивена тоже раздражает, и я изо всех сил пытался получить хотя бы некоторые из примеров, работающих на каждой платформе, на которой я их пробовал. При этом обертки скрывают в основном тривиальное обращение к ошибкам, которое было бы повторяющимся, непросвещенным и занимало больше места в уже большой книге. (Хотя справедливо, редакторы могут выбросить последнюю 1/4 книги, покрывающей XTI, чтобы освободить место.)
Сетевое программирование достаточно глубоко посвящено теме, в которой вы можете чередоваться с поверхностными волнами и делать пушечные ядра. Было упомянуто несколько хороших источников для быстрого старта, которые заставят вас пройти стадию "вау, я заработал". Но когда вам нужно подняться до "Мне нужно, чтобы это было надежным и надежным, потому что моя работа/продукт зависит от этого", вы поймете, что Стивенс, бородавки и все остальное, за его сверхъестественную способность предвидеть вашу текущую проблему.
Были главы работы Стивена, которые я успешно игнорировал годами. Но я был уверен, что они были там, когда я нуждался в них.
Ответ 8
Объединительный модуль UNIX Network Programming Volume 1/2 от W. Richard Stevens является легендарным.
Ithilgore также написал очень подробный документ raw сокеты.
Кроме того, Beej Guide to Socket Programming хорошо написан, прост для понимания и определенная рекомендация.
Независимо от того, что вы читаете, убедитесь, что вы пишете дополнительный код.
Ответ 9
Вы также рассматриваете более общую ссылку,
Программирование систем Unix ™: связь, Concurrency и потоки
Кэй А. Роббинс, Стивен Роббинс
Prentice Hall
ISBN: 0-13-042411-0
книга Ричарда Стивена - самая полная ссылка на эту конкретную тему
Ответ 10
Книга Майкла Керриска (он также поддерживает man-страницы Linux) интерфейс программирования Linux
есть все о программировании unix; главы от 57 до 61 находятся на сокетах.