Difference between revisions of "IPConnection.IsBlocking"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
IsBlocking (Тип соединения) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Атрибут получает или изменяет свойство того, является ли данный сокет (соединение) блокирующим или нет. Операционная система не во всех случаях дает изменять такое свойство после начала обмена информацией, поэтому, рекомендуется изменять атрибут сразу же после установки соединения. Атрибут не будет работать, если соединение не установлено.
Синтаксис
IPConnection.IsBlocking:<Блокирующий ли это сокет TCP (INT)>
Возвращаемое значение
Возвращает 1, если текущее соединение блокирующее, иначе возвращает 0.
Примеры
//Пример показывает соединение, отсылку простого запроса с помощью операции POST и получение ответа //Входящие переменные: Ссылка, Стр (тело запроса) If pos("//",Ссылка)>0 Then TearStr(Ссылка,"//"); EndIf; Сервер:=TearStr(Ссылка,"/"); aTCP:=0; For i:=1 To 5 Do aTCP:=IPConnection.Connect(Сервер); If aTCP.IsConnected Then Break; EndIf; EndDo; If _Or(isEmpty(aTCP),not aTCP.isConnected()) Then Message("Невозможно соединиться с сервером "+Сервер+"!"); Exit; EndIf; aTCP.IsBlocking:=1; aTCP.HTTPClear(); aTCP.HTTPSetOperation("POST /"+Ссылка+" HTTP/1.1"); aTCP.HTTPSetHeaderField("Host",Сервер); aTCP.HTTPSetHeaderField("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); aTCP.HTTPSetHeaderField("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); aTCP.HTTPSetHeaderField("Accept-Language","en"); aTCP.HTTPSetHeaderField("Connection","Close"); Стр:="Content-Disposition: form-data; name=""xml_file""; filename=""request.xml"""+_NEWLINE+ "Content-Type: text/xml; charset=utf-8"+_NEWLINE+_NEWLINE+UnicodeToUTF8(Стр); //Граница стрГраница:="---------------------------"+Random(65536)+Random(65536)+Random(65536); While pos(стрГраница,Стр)>0 Do стрГраница:="---------------------------"+Random(65536)+Random(65536)+Random(65536); EndDo; aTCP.HTTPSetHeaderField("Content-Type","multipart/form-data; boundary="+стрГраница); Стр:="--"+стрГраница+_NEWLINE+Стр+_NEWLINE+"--"+стрГраница+"--"+_NEWLINE+_NEWLINE; aTCP.HTTPSetHeaderField("Content-Length",Length(Стр)); aTCP.HTTPSetBody(Стр); If not aTCP.HTTPSendAndReceive Then Message("Ошибка при отправке пакета!"); Exit; EndIf; //Получаем заголовок и тело СтрЗ:=aTCP.HTTPHeaderAsString; СтрТ:=aTCP.HTTPBodyAsString; If pos(";charset=utf-8",СтрТ)>0 Then СтрТ:=UTF8ToUnicode(СтрТ); EndIf; If pos(" 200 OK"+_NEWLINE,СтрЗ)=0 Then Message("Ошибка сервера!"); Exit; EndIf; ...