Что нового

[Сеть, интернет] timeout приема данных

andreitrane

Новичок
Сообщения
141
Репутация
3
часто при отправке запроса на сервер, тот не отвечает из за того, что он перегружен
помогите создать условие, если нет ответа от сервера через 2 секунды, то отправка на сервер повторяется с другими данными (смену данных я сделаю сам, мне главное нужно условие)
вот небольшой пример
Код:
_sendmsg()
if ...... then ; если нет ответа через 2 секунды, тогда
	_sendmsg()
	
	Func _sendmsg()
		;отправка запроса на сервер
		EndFunc
 

Arei

Скриптер
Сообщения
938
Репутация
115
Re: [Сеть, интернет] помогите создать условие

Код:
$var = Ping("название сервера или его адрес",2000)
If $var Then 
       _sendmsg()
Else
    Msgbox(0,"Status","Сервер не отвечает по ошибке №: " & @error)
EndIf

     
    Func _sendmsg()
        ;отправка запроса на сервер
        EndFunc


как вариант можно так попробовать.
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Re: [Сеть, интернет] помогите создать условие

ping то сервер может ответить, а вот осмысленный ответ на запрос уже нет
 

Arei

Скриптер
Сообщения
938
Репутация
115
Re: [Сеть, интернет] помогите создать условие

это да согласен, но вы по крайней мере точно отправите запрос.
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
Re: [Сеть, интернет] помогите создать условие

axlwor [?]
ping то сервер может ответить, а вот осмысленный ответ на запрос уже нет
в смысле я смогу отправить запрос, но ответ на запрос не получу и не смогу вытащить из него данные?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Re: [Сеть, интернет] помогите создать условие

setTimeouts
 

Arei

Скриптер
Сообщения
938
Репутация
115
Re: [Сеть, интернет] помогите создать условие

и что за осмысленный ответ?
 

Fever

Скриптер
Сообщения
308
Репутация
112
Re: [Сеть, интернет] помогите создать условие

Код:
Global $Data[5] = [0, 1, 2, 3, 4]

If _connect() == 1 Then
	MsgBox(0, "", "connected")
Else
	MsgBox(0, "", "failed to connect")
EndIf

Func _connect()
	For $i = 1 To UBound($Data) -1
		$msg = _sendmsg($Data[$i])
		If $msg <> 0 Then
			Return 1
		EndIf
		Sleep(1000*2)
	Next

	Return 0
EndFunc

Func _sendmsg($data)
	Local $answer
	;отправка запроса на сервер
	Return $answer
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Сеть, интернет] помогите создать условие

andreitrane
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

"[Сеть, интернет] помогите создать условие" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Администратор форума.
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
Re: [Сеть, интернет] помогите создать условие

вот, дополню код
Код:
_smsg()
if ....... Then  ; если нет ответа через 2 секунды
	MsgBox(0, "", "connected")
Else
	MsgBox(0, "", "not connect")
	EndIf

Func _smsg()
Global $URL = "http://109.234.155.196/prison/universal.php?getFriendModels"
            $PostData = "user=90860572&key=8f3244a34be6810a5cd465745d7d5&friend%5Fuid=106965530&method=getFriendModels"
            $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
            $oHTTP.Open("POST", $URL)
            $oHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
            $oHTTP.Send($PostData)
            $oHTTP.WaitForResponse
            $Response = $oHTTP.ResponseText
		EndFunc


Fever
ваш код слишком длинный, надо что нибудь покороче
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Костыль:

Код:
_smsg()
If Not @error Then
	MsgBox(0, '', 'connected')
Else
	MsgBox(0, '', 'not connect')
EndIf

Func _smsg()
	Global $URL = 'http://109.234.155.196/prison/universal.php?getFriendModels'
	$PostData = 'user=90860572&key=8f3244a34be6810a5cd465745d7d5&friend%5Fuid=106965530&method=getFriendModels'
	$oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
	$oHTTP.Open('POST', $URL, 1)
	$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
	$oHTTP.Send($PostData)
	$oHTTP.WaitForResponse(2)
	$Response = Execute('$oHTTP.ResponseText') ;костыль
	If $Response = '' Then Return SetError(1)
EndFunc
 
Верх