next up previous contents index
Next: Функция recv Up: Работа с сокетами Previous: Функция connect   Contents   Index

Функция send

Функция служит для записи данных в сокет.

Прототип:

int send(int s, char * buf, int len, int flags);

Первый аргумент - сокет-дескриптор, в который записываются данные. Второй и третий аргументы - соответственно, адрес и длина буфера с записываемыми данными. Четвертый параметр - это комбинация битовых флагов, управляющих режимами записи. Если аргумент flags равен нулю, то запись в сокет (и, соответственно, считывание ) происходит в порядке поступления байтов. Если значение flags есть MSG_OOB, то записываемые данные передаются потребителю вне очереди.

Функция возвращает число записанных в сокет байтов ( в нормальном случае должно быть равно значению параметра len ) или -1 в случае ошибки. Отметим, что запись в сокет не означает, что данные приняты на другом конце соединения процессом-потребителем. Для этого процесс-потребитель должен выполнить функцию recv ( см. ниже ). Таким образом, функции чтения и записи в сокет выполняются асинхронно.



Alex Otwagin 2002-12-16