мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| glossary:net:concepts:berkeley_sockets [2025/09/15 14:36] – удалено - внешнее изменение (Дата неизвестна) A User Not Logged in | glossary:net:concepts:berkeley_sockets [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Berkeley sockets ====== | ||
| + | Сокет-интерфейс Беркли (Berkeley Sockets) - это API для сетевого программирования, | ||
| + | |||
| + | **Сокет** - это абстракция, | ||
| + | |||
| + | Пример использования: | ||
| + | |||
| + | 1. **Создание сокета**: | ||
| + | <code cpp> | ||
| + | int sockfd = socket(AF_INET, | ||
| + | </ | ||
| + | |||
| + | 2. **Привязка сокета**: | ||
| + | <code cpp> | ||
| + | struct sockaddr_in serv_addr; | ||
| + | serv_addr.sin_family = AF_INET | ||
| + | serv_addr.sin_addr.s_addr = INADDR_ANY; | ||
| + | serv_addr.sin_port = htons(8080); | ||
| + | bind(sockfd, | ||
| + | </ | ||
| + | |||
| + | 3. **Прослушивание и принятие соединений**: | ||
| + | <code cpp> | ||
| + | listen(sockfd, | ||
| + | int newsockfd = accept(sockfd, | ||
| + | </ | ||
| + | |||
| + | 4. **Соединение с сервером**: | ||
| + | <code cpp> | ||
| + | connect(sockfd, | ||
| + | </ | ||
| + | |||
| + | 5. **Отправка и получение данных**: | ||
| + | <code cpp> | ||
| + | send(sockfd, | ||
| + | recv(sockfd, | ||
| + | </ | ||
| + | |||
| + | 6. **Закрытие сокета**: | ||
| + | <code cpp> | ||
| + | close(sockfd); | ||
| + | </ | ||