Отправка и получение данных
Отправка и получение данных
Программы, использующие сокеты, обмениваются данными с помощью функций send и recv, прототипы которых почти совпадают (перед указателем буфера функции send помещается модификатор const). Ниже представлен только прототип функции send.
int send(SOCKET s, const char * lpBuffer, int nBufferLen, int nFlags);
Возвращаемым значением является число фактически переданных байтов. Значение SOCKET_ERROR указывает на ошибку.
nFlags — может использоваться для обозначения степени срочности сообщений (например, экстренных сообщений), а значение MSG_PEEK позволяет просматривать получаемые данные без их считывания.
Самое главное, что вы должны запомнить — это то, что функции send и recv не являются атомарными (atomic), и поэтому нет никакой гарантии, что затребованные данные будут действительно отправлены или получены. Передача "коротких" сообщений ("short sends") встречается крайне редко, хотя и возможна, что справедливо и по отношению к приему "коротких" сообщений ("short receives"). Понятие сообщения в том смысле, который оно имело в случае именованных каналов, здесь отсутствует, и поэтому вы должны проверять возвращаемое значение и повторно отправлять или принимать данные до тех пор, пока все они не будут переданы.
С сокетами могут использоваться также функции ReadFile и WriteFile, только в этом случае при вызове функции необходимо привести сокет к типу HANDLE.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
12.7.2. Отправка данных с сигналом
12.7.2. Отправка данных с сигналом Механизм siginfo_t также позволяет сигналам, которые посылают программы, присоединять к себе один элемент данных (этот элемент может быть указателем, что позволяет неявно передавать любой необходимый объем данных). Чтобы отправить данные,
17.6.2. Отправка и получение дейтаграмм
17.6.2. Отправка и получение дейтаграмм Для отправки и получения UDP-пакетов обычно используются четыре системных вызова[141]: send(), sendto(), recv(), recvfrom()[142].#include <sys/types.h>#include <sys/sockets.h>int send(int s, const void * data, size_t len, int flags);int sendto(int s, const void * data, size_t len, int flags, const struct sockaddr * to, socklen_t toLen);int recv(int
21.10. Отправка и получение
21.10. Отправка и получение Программа для получения анонсов сеанса многоадресной передачи, показанная в предыдущем разделе, могла только получать дейтаграммы многоадресной передачи. Теперь мы создадим простую программу, способную и отправлять, и получать дейтаграммы
Отправка и получение писем
Отправка и получение писем Ящик зарегистрирован, самое время начать им пользоваться и написать первое письмо.Думая, кому написать первое письмо, не нужно теряться в догадках, вспоминая адреса почтовых ящиков друзей и знакомых. На тему адресата письма можно задуматься,
Отправка и получение писем
Отправка и получение писем Ящик зарегистрирован – самое время начать им пользоваться и написать первое письмо.Думая, кому написать первое письмо, не нужно теряться в догадках, вспоминая адреса почтовых ящиков друзей и знакомых. На тему адресата письма можно задуматься,
Отправка и получение почты в программе Outlook Express
Отправка и получение почты в программе Outlook Express Работа с письмами в рассматриваемой почтовой программе несложна и не особо отличается от отправки и чтения почты через веб-интерфейс.Создание нового письма начинается с нажатия кнопки Создать, открывающей окно Создать
Передача и получение пользовательских данных состояния
Передача и получение пользовательских данных состояния Заключительным аспектом нашего рассмотрения асинхронных делегатов будет обсуждение последнего из аргументов метода BeginInvoke() (этот аргумент у нас до сих пор был равен null). С помощью этого параметра можно передать в
18.3. Получение данных акселерометра
18.3. Получение данных акселерометра Постановка задачи Требуется указать операционной системе iOS, чтобы она посылала вашей программе данные от
18.5. Получение данных гироскопа
18.5. Получение данных гироскопа Постановка задачи Требуется получать информацию о движении устройства от гироскопа, установленного в устройстве с
Получение информации о базе данных
Получение информации о базе данных После того как вы создали базу данных и подтвердили создание (commit), вы можете в isql отобразить ее детали, используя команду SHOW DATABASE:SQL> SHOW DATABASE;Database: /opt/databases/mydatabase.fdbOwner: ADMINUSRPAGE_SIZE 8192Number of DB pages allocated = 176Sweep interval = 20000Forced Writes are ONTransaction - oldest =
Получение доступа к базе данных из gfix
Получение доступа к базе данных из gfix Если вы соединяетесь с сервером удаленно, то в список переключателей вы должны включить имя пользователя и пароль для пользователя SYSDBA или для владельца базы данных. Такими переключателями являются:-pas[sword] <пароль> -u[ser]
4.1. Получение структурированной информации из базы данных
4.1. Получение структурированной информации из базы данных Это упражнение развивает навыки представления структурных объектов данных и управления ими. Оно показывает также, что Пролог является естественным языком запросов к базе данных.База данных может быть
Отправка данных серверной программе
Отправка данных серверной программе Предположим, мы создали несколько полей ввода, собирающих данные от пользователя. Как теперь отправить эти данные серверной программе?Прежде всего, их нужно поместить в переменные. Причем это должны быть переменные уровня клипа, т. е.
Получение данных от серверной программы
Получение данных от серверной программы Самый простой способ передать серверной программе данные и сразу же получить от нее результат их обработки — использовать действие loadVariabies или одноименный метод объекта movieClip. Это действие (метод) отправляет данные серверной
Получение, создание и отправка писем
Получение, создание и отправка писем Чтобы написать письмо в Outlook Express, нужно нажать кнопку Создать сообщение на панели инструментов. Откроется чистый бланк письма, который нужно будет заполнить. Чистый бланк письма, который вы будете заполнятьПоле От заполняется