Добрый день, господа.
В autoit янемного нуб. Накопипастил я такую вот простенькую штуку, делает то что мне нужно, без излишеств:
И все бы хорошо. Работает. Но есть ньюанс, когда я гоняю тестовый скриптик с отправкой циферок, стянутый отсюда: http://autoit-script.ru/docs/functions/tcpsend.htm
отправил, отключил, после этого подключился снова и все продолжает работать. Но, если рвется сеть. Перезагружается машинка с которой идет инфа с тестового скрипта. Или устройство под андроидом, с которого запущена основная софтина (приложение на unity), которая гонит айдишки... то повторного подключения не происходит. Так понимаю, потому что $TCPAccept не сваливается в -1... а так как ни в сетях-сокетах, ни в autoit я не силён, и возникает вопрос. Как мне с "сервера" понять, что "клиент" внепланово отморозился?
Буду очень признателен. Спасибо!
Решил закостылил вопрос, толком не понимая что делаю, стянув этот скрипт - https://www.autoitscript.com/forum/topic/137221-fast-multi-client-tcp-server/
В autoit я
Код:
GUICreate("Incoming", 600, 300)
$loglist = GUICtrlCreateList("messages", -1, -1, 615, 227)
GUISetState()
Global $TCPAccept
TCPStartup()
$Socket = TCPListen("127.0.0.1", 4567)
GUICtrlSetData($loglist, "" & $TCPAccept )
While 1
$TCPRecv = TCPRecv($TCPAccept, 999999999)
If @error Then _TCPAccept()
If $TCPRecv <> "" Then CMD( $TCPRecv )
Sleep(100)
WEnd
Func _TCPAccept()
GUICtrlSetData($loglist, "")
Do
$TCPAccept = TCPAccept($Socket)
GUICtrlSetData($loglist, "" & $TCPAccept )
Until $TCPAccept <> -1
EndFunc ;==>_TCPAccept
Func CMD( $cmd )
GUICtrlSetData($loglist, $cmd & " прилетело с " & $TCPAccept)
;снюхать ид с $cmd
;имитация хоткеев по айдишникам
EndFunc ;==>CMD
И все бы хорошо. Работает. Но есть ньюанс, когда я гоняю тестовый скриптик с отправкой циферок, стянутый отсюда: http://autoit-script.ru/docs/functions/tcpsend.htm
отправил, отключил, после этого подключился снова и все продолжает работать. Но, если рвется сеть. Перезагружается машинка с которой идет инфа с тестового скрипта. Или устройство под андроидом, с которого запущена основная софтина (приложение на unity), которая гонит айдишки... то повторного подключения не происходит. Так понимаю, потому что $TCPAccept не сваливается в -1... а так как ни в сетях-сокетах, ни в autoit я не силён, и возникает вопрос. Как мне с "сервера" понять, что "клиент" внепланово отморозился?
Буду очень признателен. Спасибо!
Сообщение автоматически объединено:
Последнее редактирование: