Как установить поддержку сокетов в скриптах QUIK ?
Пользователь
Сообщений: Регистрация: 13.03.2016
18.11.2020 21:17:29
У меня версия QUIK 8.9.0.107
Версия LUA 5.3
Раньше использовал сокеты подключая их командой
socket=require("socket")
После переустановки QUIK выдается сообщение
module 'socket' not found:
Подскажите, пожалуйста, где мне скачать и как установить нужную библеотеку, что бы можно было пользоваться сокетами?
Пользователь
Сообщений: Регистрация: 31.01.2015
19.11.2020 06:21:26
Я у себя сделал так:
1) создал в папке терминала подпапку socket и положил туда файл core.dll, который взял отсюда:
2) в папке с lua-скриптами создал папку lib, куда положил файл socket.lua, который взял отсюда:
(в этой же папке ещё и другие файлы библиотек лежат)
3) в скриптах пишу
Код
local socket = require("lib.socket")
Возможно, есть какие-то другие способы.
Пользователь
Сообщений: Регистрация: 13.03.2016
23.11.2020 14:17:27
Сделал, как вы написали. Не заработало.
Стабильно в QUIK на команду
local socket = require("lib.socket")
возникала ошибка
error loading module 'socket.core' from file 'C:\Open_Broker_QUIK\socket\core.dll':
Не найден указанный модуль.
Потратил три дня. Перепробовал разные варианты.
Стал гуглить и читать форумы.
В этой ветке эту проблему тоже обсуждают
И предлагают какие то непонятные танцы с бубном с подменой файла lua5.1.dll
Но по их методике ошибка у меня не исчезла.
В итоге методом тыка и перебора всех вариантов проблему решил следующим образом.
Сокеты начали работать.
1) Скачал отсюда файл core.dll размером 177152 байт
Это ссылка на тот же сайт что вы дали, но вместо 5.1_MD я качаю 5.1_MT
2) В папке C:\Open_Broker_QUIK\ создал папку socket
3) Положил туда core.dll размером 177152 байт скачанный на шаге 1)
4) В скрипте LUA сокеты подключаю командой socket=require("socket.core")
Никаких других действий не делал. package.path и package.сpath не менял.
Вашего шага 2 тоже не делал.
Подскажите, чем отличаются файлы?
Размер 52224. Эту библиотеку подключить не получилось.
И
размером 177152 байт, с которой нормально заработали сокеты на LUA 5.3
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
23.11.2020 14:49:27
Отличаются режимами сборки Для /MD требуется еще установленный Microsoft Visual C++ Redistributable соответствующей версии (в зависимости от версии Visual C++, в котором собирали). Ну либо установленный MS Visual C++ соответствующей версии.
Пользователь
Сообщений: Регистрация: 31.01.2015
14.12.2020 17:36:57
В связи с выходом QUIK 8.11 становится актуальным файл core.dll для socket для Lua 5.4.1.
Также mime.dll и ssl.dll надо искать, но уже для других целей.
Пользователь
Сообщений: Регистрация: 31.01.2015
22.12.2020 14:45:06
Кто-нибудь из знающих товарищей может либо подсказать, как это делается, либо просто скомпилировать и выложить на форум socket core.dll для Quik 8.11 и Lua 5.4.1?
Хотел было, но Диего любит наворотить в проекте нетривиальностей, что в двух словах не объяснишь, так что (не тестировано вообще никак, может и нерабочее получилось).
Пользователь
Сообщений: Регистрация: 31.01.2015
23.12.2020 06:50:16
Проверил socket core.dll, вроде работает. Спасибо большое!
Пользователь
Сообщений: Регистрация: 05.04.2020
26.12.2020 12:55:33
Всем привет. , не подскажете в какой из файлов, или какой функцией задаются адрес и порт Socket сервера и какой функцией отправить данные на него? Как вообще можно установить соединение? У меня имеется WebSocket сервер на php, хочу на него отправлять данные из Quik. Я выполнил ваши рекомендации, но дальше не могу разобраться, хотя роботов на lua пишу.
Пользователь
Сообщений: Регистрация: 13.03.2016
26.12.2020 17:37:25
, вот кусок кода на LUA для подключения к серверу.
Код
socket=require("socket.core")
tcp = socket.tcp()
tcp:settimeout(1)
local host, port = "127.0.0.1", 1020
if tcp:connect(host, port) then
print("connect OK "..host..":"..port)
else
print("connect Error")
end
...
tcp:close()
Сервер у меня на Delphi 7
Пользователь
Сообщений: Регистрация: 29.11.2019
12.01.2021 23:23:16
Ну у кого квик не начинал падать с этой библиотекой? Я скачал версию с сайта из сообщения В момент старта через минуту Квик может упасть, полноценно и с дампом.
Пользователь
Сообщений: Регистрация: 29.11.2019
13.01.2021 14:15:01
Цитата
_sk_ написал: Проверил socket core.dll, вроде работает. Спасибо большое!
Скачайте MSVC. Скачайте исходный код нужной версии Lua. Откройте нативный терминал разработки MSVC х64, в нем откройте папку с исходниками. Скомпилируйте Lua с помощью такого кода:
Код
cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c
ren lua.obj lua.o
ren luac.obj luac.o
link /DLL /IMPLIB:lua54.lib /OUT:lua54.dll *.obj
link /OUT:lua.exe lua.o lua54.lib
lib /OUT:lua54-static.lib *.obj
link /OUT:luac.exe luac.o lua54-static.lib
замените "54" на "53" если у вас эта версия. Скопируйте все файлы в системную папку для Lua, например C:\Lua54. Добавьте эту папку в переенную %PATH%.
Скачайте исходный код luarocks. Перейдите в терминале папку с исходниками, установите систему с помощью такой коанды:
Код
install /LV 5.4 /MSVC /P C:\Lua54\luarocks
тоже поменяйте номер версии при надобности. Перейдите в папку luarocks и установите luasocket
Код
luarocks install luasocket
полученные файлы библиотеки можно скопировать из C:\Lua54\luarocks\systree\lib\lua\5.4 в корень QUIK, либо в нужное место если у вас есть соответствующая запись в package.cpath.
Все операции по компиляции и установке надо проводить в нативном терминале х64 (в нем инициализированы нужные настройки).
Спасибо! Это, конечно, более правильный путь. Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился. Первый день исправлял одну системную ошибку за одной. Переустанавливал VS, DirectX(с проблемами). VS 2019 (бесплатная, для студентов и прочих) встала по сети без проблем, только Python отказался грузиться, но я потом поправил ошибку (указал путь к правильным dll). Сегодня добрался до первой строчки вашего примера. Сразу ошибка. Победил первую ошибку командной строки (внес пути в PATH), за ней вторая и так, видимо, до бесконечности.
Добавка переменной окружения LOAD_LIBRARY_SEARCH_DEFAULT_DIRS с этим путем, а также этого пути в PATH здесь не помогла.
На более новые версии Windows не хочу переходить, я их юзаю на работе, по необходимости, очень не нравятся. Видимо для меня Windows постепенно перестает существовать.
Пользователь
Сообщений: Регистрация: 06.04.2021
08.04.2021 00:49:42
Цитата
Артем написал: Спасибо! Это, конечно, более правильный путь. Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился. Первый день исправлял одну системную ошибку за одной. Переустанавливал VS, DirectX(с проблемами). VS 2019 (бесплатная, для студентов и прочих) встала по сети без проблем, только Python отказался грузиться, но я потом поправил ошибку (указал путь к правильным dll). Сегодня добрался до первой строчки вашего примера. Сразу ошибка. Победил первую ошибку командной строки (внес пути в PATH), за ней вторая и так, видимо, до бесконечности. cl командная строка Error D8027 нельзя выполнить C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x64\c1.dllДобавка переменной окружения LOAD_LIBRARY_SEARCH_DEFAULT_DIRS с этим путем, а также этого пути в PATH здесь не помогла. На более новые версии Windows не хочу переходить, я их юзаю на работе, по необходимости, очень не нравятся.Видимо для меня Windows постепенно перестает существовать.
Спасибо! Это, конечно, более правильный путь. Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился. Первый день исправлял одну системную ошибку за одной. Переустанавливал VS, DirectX(с проблемами). VS 2019 (бесплатная, для студентов и прочих) встала по сети без проблем, только Python отказался грузиться, но я потом поправил ошибку (указал путь к правильным dll). Сегодня добрался до первой строчки вашего примера. Сразу ошибка. Победил первую ошибку командной строки (внес пути в PATH), за ней вторая и так, видимо, до бесконечности.
Добавка переменной окружения LOAD_LIBRARY_SEARCH_DEFAULT_DIRS с этим путем, а также этого пути в PATH здесь не помогла.
На более новые версии Windows не хочу переходить, я их юзаю на работе, по необходимости, очень не нравятся. Видимо для меня Windows постепенно перестает существовать.
Скачайте MSVC. Скачайте исходный код нужной версии Lua. Откройте нативный терминал разработки MSVC х64, в нем откройте папку с исходниками. Скомпилируйте Lua с помощью такого кода:
замените "54" на "53" если у вас эта версия. Скопируйте все файлы в системную папку для Lua, например C:\Lua54. Добавьте эту папку в переенную %PATH%.
Скачайте исходный код luarocks. Перейдите в терминале папку с исходниками, установите систему с помощью такой коанды:
Код
install /LV 5.4 /MSVC /P C:\Lua54\luarocks
тоже поменяйте номер версии при надобности. Перейдите в папку luarocks и установите luasocket
Код
luarocks install luasocket
полученные файлы библиотеки можно скопировать из C:\Lua54\luarocks\systree\lib\lua\5.4 в корень QUIK, либо в нужное место если у вас есть соответствующая запись в package.cpath.
Все операции по компиляции и установке надо проводить в нативном терминале х64 (в нем инициализированы нужные настройки).
Спасибо! Это, конечно, более правильный путь. Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился. Первый день исправлял одну системную ошибку за одной. Переустанавливал VS, DirectX(с проблемами). VS 2019 (бесплатная, для студентов и прочих) встала по сети без проблем, только Python отказался грузиться, но я потом поправил ошибку (указал путь к правильным dll). Сегодня добрался до первой строчки вашего примера. Сразу ошибка. Победил первую ошибку командной строки (внес пути в PATH), за ней вторая и так, видимо, до бесконечности.
Добавка переменной окружения LOAD_LIBRARY_SEARCH_DEFAULT_DIRS с этим путем, а также этого пути в PATH здесь не помогла.
На более новые версии Windows не хочу переходить, я их юзаю на работе, по необходимости, очень не нравятся. Видимо для меня Windows постепенно перестает существовать.
Модератор, удалите предыдущие два поста, пожалуйста.
Пользователь
Сообщений: Регистрация: 06.04.2021
08.04.2021 01:02:07
Я думаю, Микрософт теперь не будет беспокоиться о совместимости новых версий своих программ с Windows 7 и проблемы будут усугубляться.
Пользователь
Сообщений: Регистрация: 25.09.2020
08.04.2021 07:24:48
Николай, Они ВЫНУЖДАЮТ переходить на всё более новое (и всё более глючное) говно. Билл здесь один из пионеров, но сейчас так делают абсолютно все. А о совместимости снизу забыли ещё в прошлом тысячелетии, и забыли сознательно.
Пользователь
Сообщений: Регистрация: 21.08.2015
15.04.2021 02:13:06
Цитата
Николай написал: Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился.
Не едет. То есть едет на ручной тяге и я б затруднился по пунктам расписать, что куда крутить в общем случае. К сожалению, семерку будут выдавливать и дальше и с этим ничего уже не сделать. Причем явно видно, что авторы опенсорца (не конкретно этого) радостно идут навстречу майкрософту, убивая совместимость со старыми студиями, все замены в их коде абсолютно не нужны с точки зрения работоспособности или каких-то там улучшений, просто чтобы в старых студиях не собиралось без танцев.
Все думаю где-то разместить "навеки", да руки не доходят.
написал: Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился.
Не едет. То есть едет на ручной тяге и я б затруднился по пунктам расписать, что куда крутить в общем случае. К сожалению, семерку будут выдавливать и дальше и с этим ничего уже не сделать. Причем явно видно, что авторы опенсорца (не конкретно этого) радостно идут навстречу майкрософту, убивая совместимость со старыми студиями, все замены в их коде абсолютно не нужны с точки зрения работоспособности или каких-то там улучшений, просто чтобы в старых студиях не собиралось без танцев.
Все думаю где-то разместить "навеки", да руки не доходят.
Спасибо! А почему он в 2-3 раза больше, чем другие x64 версии этой же библиотеки?
Пользователь
Сообщений: Регистрация: 21.08.2015
17.04.2021 13:08:17
Цитата
Николай написал: А почему он в 2-3 раза больше, чем другие x64 версии этой же библиотеки?
Архив больше? Там две длл, для core и mime. Если каждая длл больше, то скорее всего потому, что здесь рантайм встроенный, в других, видимо, отдельный. Скиньте какую-нибудь из этих других длл, посмотрю точно.