Difference between revisions of "IPConnection.SendBufferRaw"

From SunFlurry wiki
Jump to: navigation, search
(Примеры)
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:51, 7 February 2021

  SendBufferRaw (Обмен данными)
Объект:Объект IP
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, не буфер, разрыв соединения, системная ошибка
Визуальность:Нет

TCP/IP функция отсылает данные из буфера по установленному соединению. Длина данных не отсылается. Функцию можно использовать как для блокирующих, так и для не блокирующих соединений. Если соединение будет разорвано до успешной отправки данных, функция вызовет исключение.

Синтаксис

IPConnection.SendBufferRaw(<Буфер для отправки информации (BUFFER)>,<Начальная позиция буфера (INT)>=0,<Размер отправляемых данных в байтах (INT)>)

Аргументы

  • <Буфер для отправки информации (BUFFER)> - Буфер, содержимое которого будет передано с помощью установленного соединения.
  • <Начальная позиция буфера (INT)> - (необязательный аргумент) Начальная позиция в буфере, для отсылки информации. По умолчанию, 0.
  • <Размер отправляемых данных в байтах (INT)> - (необязательный аргумент) Размер в байтах, для отсылки информации. По умолчанию, до конца буфера.

Примеры

//Пример SendBufferRaw
Сокет:=IPConnection.Connect("127.0.0.1:5555");
If not Сокет.IsConnected() Then
  Message("Сервер не отвечает","!");
  Exit 0;
EndIf;
Try
  Стр:=FileToString("c:\Test.txt",0);
  aBuf:=Buffer.Create();
  If StringTypeStr(Стр)="ANSI" Then
    //ANSI, длина, строка
    aBuf.SetByte(0,0);
    aBuf.SetDword(1,Length(Стр));
  Else
    //UTF-16, длина, строка
    aBuf.SetByte(0,1);
    aBuf.SetDword(1,Length(Стр)*2);
  EndIf;
  Сокет.SendBufferRaw(aBuf,0,5);
  Сокет.SendStrRaw(Стр,StringTypeStr(Стр)<>"ANSI");
  Exit 1;
Except
  Exit 0;
EndTry;