1 (изменено: lngvar, 2018-10-06 01:48:50)

Тема: AHK: Socket . Паралельное ожидание сообщения.

Имею вот такой корявый код для примера.


 #include socket.ahk
Server := new SocketTCP()
Server.Bind(["192.168.88.100", 8000])
 Server.OnAccept := Func("OnAccept")

Loop
{
SoundBeep 1000,50
Sleep 1000
}

OnAccept(Server)
{
	Sock := Server.Accept()
	loop
	{
	ToolTip, % Sock.RecvText()
	}
	return
}

Не могу понять, как сделать так, что бы сервер всегда ожидал  сообщения, но и что бы главный пищащий луп не прерывался.
Как вариант - это дисконектиться после получения сообщения и что бы клиент опять заново коннектился к серверу для очередного сообщения.
Но это не совсем удобно.

2

Re: AHK: Socket . Паралельное ожидание сообщения.

Два цикла одновременно не могут работать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3 (изменено: lngvar, 2018-10-06 14:31:42)

Re: AHK: Socket . Паралельное ожидание сообщения.

Ну а неужели нет способа сокетного взаимодействия при котором скрипт не уходит в вечное ожидания сообщения ?

4

Re: AHK: Socket . Паралельное ожидание сообщения.

Циклы можнот переписать таймерами.

5 (изменено: lngvar, 2018-10-06 14:32:03)

Re: AHK: Socket . Паралельное ожидание сообщения.

Тут дело не в циклах, а в том что бы скрипт выполнял свою работу ( довольно сложная программа) и получал мессаги на сокет,  обработка которых бы меняла некоторые флаги, и обновляла некоторые переменные актуальными данными.

6

Re: AHK: Socket . Паралельное ожидание сообщения.

Просто уберите цикл из OnAccept().

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

7 (изменено: lngvar, 2018-10-06 14:32:21)

Re: AHK: Socket . Паралельное ожидание сообщения.

Ок, он примет одно сообщение и все, следующее он не обработает.

8 (изменено: teadrinker, 2018-10-06 04:17:50)

Re: AHK: Socket . Паралельное ожидание сообщения.

Почему? Я не разбираюсь в этой библиотеке, но по идее должно принимать все подобные сообщения. Точнее, запускаться при подобных событиях.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

9

Re: AHK: Socket . Паралельное ожидание сообщения.

lngvar, проставьте заглавные буквы и точки в сообщениях.
http://forum.script-coding.com/viewtopi … 66#p129066

http://forum.script-coding.com/viewtopi … 68#p129068
http://forum.script-coding.com/viewtopi … 70#p129070

10

Re: AHK: Socket . Паралельное ожидание сообщения.

Библиотека использует winsockets2. Там есть функция WSAAsyncSelect - проще говоря callback-функция, советую к ознакомлению. Примеры использования есть как на самом c++ (в том же разделе доков), так и на AHK(библиотека AHKsock).