Difference between revisions of "IPConnection.ReceiveStr"
(No difference)
|
Revision as of 08:23, 24 April 2020
| ReceiveStr (Обмен данными) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
TCP/IP функция получает строку по установленному соединению. Строка может быть как в ANSI-кодировке, так и в Unicode. Строка предваряется 4 байтами, задающими количество символов в ней. Строка может быть отослана с помощью функции SendStr. Функцию можно использовать как для блокирующих, так и для не блокирующих соединений. Если соединение будет разорвано до успешного получения данных, функция вызовет исключение.
Синтаксис
IPConnection.ReceiveStr(<Получаемая строка имеет формат UTF-16 (INT)>=0):<Полученная строка (STRING)>
Аргументы
<Получаемая строка имеет формат UTF-16 (INT)>- (необязательный аргумент) По умолчанию (0), строка принимается в ANSI кодировке (и может содержать бинарные данные), если этот параметр равен 1, строка будет принята в UTF-16 (один символ задается двумя или четырьмя байтами, см. Строки). В случае UTF-16 первые 4 байта -- длина строки будут представлять собой количество слов в строке (т.е., будут в 2 раза меньше, чем длина принимаемой строки в байтах).
Возвращаемое значение
Возвращается принятая строка.
Примеры
//Пример соединения USR1
Сокет:=IPConnection.ConnectUSR1("127.0.0.1:13777");
If not Сокет.isConnected() Then
Message("Сервер не отвечает","!");
Exit 0;
EndIf;
СтрОшибка:="";
Try
СтрОшибка:="Сервер не принял режим USR1 (1)!";
Сокет.SendCmd("USR1");
Комм:=Сокет.ReceiveCmd();
If Комм="BUSY" Then
Message("Сервер занят!","!");
Exit 0;
EndIf;
If Комм<>"OK " Then
Message("Сервер не принял режим USR1 (2)!","!");
Exit 0;
EndIf;
СтрОшибка:="Ошибка при обмене!";
Сокет.SendStr("Hello, this is client!");
//Отсылка текстового файла C:\file.txt
Сокет.SendCmd("RECV");
Сокет.SendFile("C:\file.txt",1);
//Окончание обмена файлами
Сокет.SendCmd("FNSH");
Комм:=Сокет.ReceiveCmd();
If Комм<>"OK " Then
Exit 0;
EndIf;
Стр:="Любая информация для обмена";
Сокет.SendStr(Стр,1);
Сокет.ReceiveStr(Стр,1);
Message("Сервер прислал информацию: "+Стр);
//Далее следует обмен любой другой информацией
Except
If СтрОшибка<>"" Then
Message(СтрОшибка,"!");
Else
Message(PopError(),"!");
EndIf;
Exit 0;
EndTry;