Книга: Системное программирование в среде Windows
Пример: подготовка и получение клиентских запросов соединения
Пример: подготовка и получение клиентских запросов соединения
Ниже приводится фрагмент кода, показывающий, как создать сокет и организовать прием клиентских запросов соединения.
В этом примере используются две стандартные функции: htons ("host to network short" — "ближняя связь") и htonl ("host to network long" — "дальняя связь"), которые преобразуют целые числа к форме с обратным порядком байтов, требуемой протоколом IP.
Номером порта сервера может быть любое число из диапазона, допустимого для целых чисел типа short integer, но для определенных пользователем служб обычно используются числа в диапазоне 1025—5000. Порты с меньшими номерами зарезервированы для таких известных служб, как telnet или ftp, в то время как порты с большими номерами предполагаются для использования других стандартных служб.
struct sockaddr_in SrvSAddr; /* Адресная структура сервера. */
struct sockaddr_in ConnectAddr;
SOCKET SrvSock, sockio;
…
SrvSock = socket(AF_INET, SOCK_STREAM, 0);
SrvSAddr.sin_family = AF_INET;
SrvSAddr.sin_addr.s_addr = htonl(INADDR_ANY);
SrvSAddr.sin_port = htons(SERVER_PORT);
bind(SrvSock, (struct sockaddr *)&SrvSAddr, sizeof SrvSAddr);
listen(SrvSock, 5);
AddrLen = sizeof(ConnectAddr);
sockio = accept(SrvSock, (struct sockaddr *) &ConnectAddr, &AddrLen);
… Получение запросов и отправка ответов …
shutdown(sockio);
closesocket(sockio);
- Пример установочного скрипта
- Пример из практики
- Получение статистики
- Глава 11. Соединения точка-точка и ретрансляторы
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Улучшенный оптимизатор запросов
- Асинхронный сервер и отмена выполняющихся запросов
- Примеры получения статистики
- Пример применения метода «пять почему»
- 6.9. Подготовка данных для расчета прибыльности
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы