Руководство Beej'а по сетевому программированию с Internet Sockets
Brian "Beej" Hall
beej@beej.us
Перевод: Леонид "coldFlame" Шевцов
coldflame@list.ru
Версия 2.3.23
5 ноября 2005
Переведена 15 мая 2006
Copyright © 2005 Brian "Beej Jorgensen" Hall
Оглавление
- 1. Введение
- 1.1. Аудитория
- 1.2. Платформа и компилятор
- 1.3. Официальный сайт
- 1.4. Замечание для программистов Solaris/SunOS
- 1.5. Замечание для программистов Windows
- 1.6. Электронная почта
- 1.7. Зеркалирование
- 1.8. Замечание для переводчиков
- 1.9. Авторские права и распространение
- 2. Что такое сокет?
- 2.1. Два типа интернет-сокетов
- 2.2. Низкоуровневый бред и Теория Сетей
- 3. Структуры и обработка данных
- 3.1. Преобразовываем форматы!
- 3.2. IP-адреса и как с ними работать
- 3.2. Частные (или отсоединенные) сети
- 4. Системные вызовы
- 4.1. socket() - Дай мне дескриптор файла!
- 4.2. bind() - На каком порту я сижу?
- 4.3. connect() - Эй, ты!
- 4.4. listen() - Позвоните мне кто-нибудь...
- 4.5. accept() - "Спасибо, что позвонили на порт 3490."
- 4.6. send() и recv() - Поговори со мной, крошка!
- 4.7. sendto() и
recvfrom() - Поговори со мной датаграммами!
- 4.8. close() и
shutdown() - Исчезни!
- 4.9. getpeername() - Ты кто?
- 4.10. gethostname() - Кто я?
- 4.11. DNS - ты говоришь "whitehouse.gov", я отвечаю "63.161.169.137"
- 5. Клиент-сервер: основы
- 5.1. Простой потоковый сервер
- 5.2. Простой потоковый клиент
- 5.3. Датаграммные сокеты
- 6. Слегка продвинутые приемы
- 6.1. Блокирование
- 6.2. select() - Синхронное мультиплексирование ввода-вывода
- 6.3. Пересылка по частям
- 6.4. Применяем инкапсуляцию
- 6.5. Широковещательные пакеты - Hello, World!
- 7. FAQ
- 8. Справка
- 8.1. accept()
- 8.2. bind()
- 8.3. connect()
- 8.4. close()
- 8.5. gethostname()
- 8.6. gethostbyname(), gethostbyaddr()
- 8.7. getpeername()
- 8.8. errno
- 8.9. fcntl()
- 8.10. htons(), htonl(),
ntohs(), ntohl()
- 8.11. inet_ntoa(), inet_aton()
- 8.12. listen()
- 8.13. perror(), strerror()
- 8.14. poll()
- 8.15. recv(), recvfrom()
- 8.16. select()
- 8.17. setsockopt(), getsockopt()
- 8.18. send(), sendto()
- 8.19. shutdown()
- 8.20. socket()
- 8.21. struct sockaddr_in, struct in_addr
- 9. Другие источники информации
- 9.1. Книги
- 9.2. Веб-ресурсы
- 9.3. RFC