Difference between revisions of "IPConnection.ReceiveUntil"
(→Примеры) |
m (1 revision imported) |
(No difference)
|
Latest revision as of 07:51, 7 February 2021
ReceiveUntil (Обмен данными) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
TCP/IP функция получает данные в ANSI-строку по установленному соединению до момента, когда встретится указанная подстрока поиска. Данные могут представлять собой бинарную информацию. Функцию можно использовать как для блокирующих, так и для не блокирующих соединений, однако для блокирующих или шифрованных соединений, функция может работать медленнее и использовать большее процессорное время. Если соединение будет разорвано до успешного получения данных, функция вызовет исключение. Функции, типа HTTPReceiveHeader пользуются подобным способом для получения заголовка http пакета.
Синтаксис
IPConnection.ReceiveUntil(<Подстрока поиска (STRING)>):<Полученная строка (STRING)>
Аргументы
<Подстрока поиска (STRING)>
- Аргумент задает строку, при получении которой, процесс принятия информации останавливается. Следующий байт, который будет принят с помощью текущего соединения, будет байтом, следующим непосредственно после подстроки поиска.
Возвращаемое значение
Возвращается принятая строка, которая будет оканчиваться на подстроку поиска.
Примеры
Сокет:=IPConnection.Connect("127.0.0.1:80"); If not Сокет.IsConnected() Then Message("Сервер не отвечает","!"); Exit 0; EndIf; Try Сокет.HTTPSetOperation("GET "+СтрДоб+" HTTP/1.0"); Сокет.HTTPSetHeaderField("Host",tcp.HTTPPunycodeEncode(URL)); Сокет.HTTPSetHeaderField("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); Сокет.HTTPSetHeaderField("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); Сокет.HTTPSetHeaderField("Accept-Language","en"); Сокет.HTTPSetHeaderField("Connection","Close"); If Сокет.HTTPSend Then Стр:=Сокет.ReceiveUntil(_NEWLINE+_NEWLINE); Message("Заголовок ответа сервера: "+_NEWLINE+Стр); Exit 1; EndIf; Except Exit 0; EndTry;