IPConnection.Timeout
Timeout (Тайм-аут передачи) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция получает или изменяет тайм-аут функций чтения или записи в заданный в миллисекундах. При чтении или записи, если за указанное время, не удается получить (отослать) какую-либо часть данных, соединение будет считаться разорванным. Правильно установленный тайм-аут позволяет вовремя освобождать ресурсы сервера и уменьшать последствия возможных атак DOS.
Синтаксис
IPConnection.Timeout(<Новый тайм-аут в мс. (INT)>,<Тип тайм-аута (INT)>=0):<Текущий тайм-аут функций чтения или записи в мс. (INT)>
Аргументы
<Новый тайм-аут в мс. (INT)>
- (необязательный аргумент) Задает новый тайм-аут указанного в следующем аргументе типа. Если аргумент опущен, тайм-аут не будет изменен.<Тип тайм-аута (INT)>
- (необязательный аргумент) Задает тип тайм-аута. Возможны следующие значения аргумента:- 0 (по умолчанию) -- изменить одновременно тайм-аут для чтения и записи. Функция возвращает предыдущий тайм-аут для чтения.
- 1 -- изменить тайм-аут для чтения. Функция возвращает предыдущий тайм-аут для чтения.
- 2 -- изменить тайм-аут для записи. Функция возвращает предыдущий тайм-аут для записи.
Возвращаемое значение
Возвращается предыдущее (текущее) значение тайм-аута указанного во втором аргументе типа.
Примеры
Сокет:=IPConnection.Connect("127.0.0.1:5555"); If not Сокет.IsConnected() Then Message("Сервер не отвечает","!"); Exit 0; EndIf; //Установить тайм-аут в 2 минуты Сокет.TimeOut(120000); 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;