Как установить поддержку сокетов в скриптах QUIK ?

Страницы: 1
RSS
Как установить поддержку сокетов в скриптах QUIK ?
 

У меня версия QUIK 8.9.0.107

Версия LUA 5.3

Раньше использовал сокеты подключая их командой

socket=require("socket")

После переустановки QUIK выдается сообщение

module 'socket' not found:

Подскажите, пожалуйста, где мне скачать и как установить нужную библеотеку, что бы можно было пользоваться сокетами?

 
Я у себя сделал так:

1) создал в папке терминала подпапку socket и положил туда файл core.dll, который взял отсюда:
https://github.com/finsight/QUIKSharp/blob/master/src/QuikSharp/lua/clibs64­/53_MD/socket/core.dll

2) в папке с lua-скриптами создал папку lib, куда положил файл socket.lua, который взял отсюда:
https://github.com/finsight/QUIKSharp/blob/master/src/QuikSharp/lua/socket.lua
(в этой же папке ещё и другие файлы библиотек лежат)


3) в скриптах пишу
Код
local socket = require("lib.socket")

Возможно, есть какие-то другие способы.
 

Сделал, как вы написали. Не заработало.

Стабильно в QUIK на команду

local socket = require("lib.socket")

возникала ошибка

error loading module 'socket.core' from file 'C:\Open_Broker_QUIK\socket\core.dll':

               Не найден указанный модуль.

Потратил три дня. Перепробовал разные варианты.

Стал гуглить и читать форумы.

В этой ветке эту проблему тоже обсуждают

https://github.com/finsight/QUIKSharp/issues/201

И предлагают какие то непонятные танцы с бубном с подменой файла lua5.1.dll

Но по их методике ошибка у меня не исчезла.

В итоге методом тыка и перебора всех вариантов проблему решил следующим образом.

Сокеты начали работать.

1)      Скачал отсюда файл core.dll размером 177152 байт

https://github.com/finsight/QUIKSharp/tree/master/src/QuikSharp/lua/clibs64­/5.1_MT/socket

Это ссылка на тот же сайт что вы дали, но вместо 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 тоже не делал.

Подскажите, чем отличаются файлы?

https://github.com/finsight/QUIKSharp/blob/master/src/QuikSharp/lua/clibs64­­/53_MD/socket/core.dll

Размер 52224. Эту библиотеку подключить не получилось.

И

https://github.com/finsight/QUIKSharp/blob/master/src/QuikSharp/lua/clibs64­­/53_MT/socket/core.dll

размером 177152 байт, с которой нормально заработали сокеты на LUA 5.3

 
Отличаются режимами сборки
Для /MD  требуется еще установленный Microsoft Visual C++ Redistributable соответствующей версии (в зависимости от версии Visual C++, в котором собирали). Ну либо установленный MS Visual C++ соответствующей версии.
 
В связи с выходом QUIK 8.11 становится актуальным файл core.dll для socket для Lua 5.4.1.

Также mime.dll и ssl.dll надо искать, но уже для других целей.
 
Кто-нибудь из знающих товарищей может либо подсказать, как это делается, либо просто скомпилировать и выложить на форум socket core.dll для Quik 8.11 и Lua 5.4.1?
 
Цитата
_sk_ написал:
подсказать, как это делается
Хотел было, но Диего любит наворотить в проекте нетривиальностей, что в двух словах не объяснишь, так что проще самому собрать (не тестировано вообще никак, может и нерабочее получилось).
 
Проверил socket core.dll, вроде работает. Спасибо большое!
 
Всем привет.
_sk_, не подскажете в какой из файлов, или какой функцией задаются адрес и порт Socket сервера и какой функцией отправить данные на него?
Как вообще можно установить соединение? У меня имеется WebSocket сервер на php, хочу на него отправлять данные из Quik.
Я выполнил ваши рекомендации, но дальше не могу разобраться, хотя роботов на lua пишу.
 
Евгений, вот кусок кода на 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
 
Ну у кого квик не начинал падать с этой библиотекой? Я скачал версию с сайта из сообщения https://forum.quik.ru/messages/forum10/message50431/topic5986/#message50431
В момент старта через минуту Квик может упасть, полноценно и с дампом.
 
Цитата
_sk_ написал:
Проверил socket core.dll, вроде работает. Спасибо большое!
А можете выложить? Ссылка уже нерабочая.
 
Цитата
foobar написал:
Ссылка уже нерабочая.
https://dropmefiles.com/u0bWK
 
Спасибо. 5.4 работает стабильнее чем 5.3. Перевёл таблицу текущих котировок на lua/сокеты c DDE. Пока полёт нормальный.
 
Цитата
Anton написал:
Цитата
foobar написал:
Ссылка уже нерабочая.
 https://dropmefiles.com/u0bWK
А можете ещё раз выложить?
 
Цитата
0b0yv написал:
ещё раз
https://dropmefiles.com/bAGAF
 
Сборка для QUIK 8.7.1.3 x64:
https://tc0x@bitbucket.org/crypto_money/luasocket-build.git
 
Цитата
Anton написал:
Цитата
0b0yv написал:
ещё раз
 https://dropmefiles.com/bAGAF
Ссылка опять не рабочая. Можете еще раз выложить?
 
Николай, можете скомпилировать файл самостоятельно.

Скачайте 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 (в нем инициализированы нужные настройки).
 
Цитата
Николай написал:
Цитата
Anton написал:
 
Цитата
0b0yv  написал:
ещё раз
   https://dropmefiles.com/bAGAF  
Ссылка опять не рабочая. Можете еще раз выложить?
Спасибо! Это, конечно, более правильный путь. Однако у меня 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), за ней вторая и так, видимо, до бесконечности. 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), за ней вторая и так, видимо, до бесконечности.

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 постепенно перестает существовать.
 
Цитата
Артем написал:
Николай, можете скомпилировать файл самостоятельно.

Скачайте 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), за ней вторая и так, видимо, до бесконечности.

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 и проблемы будут усугубляться.
 
Николай, Они ВЫНУЖДАЮТ переходить на всё более новое (и всё более глючное) говно. Билл здесь один из пионеров, но сейчас так делают абсолютно все. А о совместимости снизу забыли ещё в прошлом тысячелетии, и забыли сознательно.
 
Цитата
Николай написал:
Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился.
Не едет. То есть едет на ручной тяге и я б затруднился по пунктам расписать, что куда крутить в общем случае. К сожалению, семерку будут выдавливать и дальше и с этим ничего уже не сделать. Причем явно видно, что авторы опенсорца (не конкретно этого) радостно идут навстречу майкрософту, убивая совместимость со старыми студиями, все замены в их коде абсолютно не нужны с точки зрения работоспособности или каких-то там улучшений, просто чтобы в старых студиях не собиралось без танцев.

Собранные длл здесь. Все думаю где-то разместить "навеки", да руки не доходят.
 
Цитата
Anton написал:
Цитата
Николай написал:
Однако у меня Windows 7 x64 SP1, и она совсем не едет или я разучился.
Не едет. То есть едет на ручной тяге и я б затруднился по пунктам расписать, что куда крутить в общем случае. К сожалению, семерку будут выдавливать и дальше и с этим ничего уже не сделать. Причем явно видно, что авторы опенсорца (не конкретно этого) радостно идут навстречу майкрософту, убивая совместимость со старыми студиями, все замены в их коде абсолютно не нужны с точки зрения работоспособности или каких-то там улучшений, просто чтобы в старых студиях не собиралось без танцев.

Собранные длл здесь.  Все думаю где-то разместить "навеки", да руки не доходят.
Спасибо! А почему он  в 2-3 раза больше, чем другие x64 версии этой же библиотеки?
 
Цитата
Николай написал:
А почему он  в 2-3 раза больше, чем другие x64 версии этой же библиотеки?
Архив больше? Там две длл, для core и mime. Если каждая длл больше, то скорее всего потому, что здесь рантайм встроенный, в других, видимо, отдельный. Скиньте какую-нибудь из этих других длл, посмотрю точно.
Страницы: 1
Читают тему (гостей: 1)
Наверх