https://github.com/tashik/QUIKSharp/blob/master/quiksharp_qlua_python_socket_client.py
https://smart-lab.ru/profile/_sg_/favourites/comments/
https://smart-lab.ru/vopros/650507.php
| sok_requests = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| sok_callbacks = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| sok_callbacks.connect((host , port_callbacks)) |
| sok_requests.connect((host , port_requests)) |
| request = {"data":"Ping","id":"1","cmd":"ping","t":"0"} |
| raw_data = json.dumps(request) |
| sok_requests.sendall((raw_data+CRLF).encode()) |
| response = sok_requests.recv(2048) |
| # Пример Получение стакана котировок по классу и коду бумаги getQuoteLevel2 - Python socket client |
| # Функция getQuoteLevel2() принимает 2 параметра: Код класса и Код бумаги, а возвращает таблицу, которая имеет следующие поля: |
| # bid_count -- Количество котировок покупки (STRING) |
| # offer_count -- Количество котировок продажи (STRING) |
| # bid -- Котировки спроса (покупки) (TABLE) |
| # offer -- Котировки предложений (продажи) (TABLE) |
| # -- Таблицы «bid» и «offer» имеют следующую структуру: |
| # price -- Цена покупки / продажи (STRING) |
| # quantity -- Количество в лотах (STRING) |
| sok_requests = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| sok_callbacks = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| sok_callbacks.connect((host , port_callbacks)) |
| sok_requests.connect((host , port_requests)) |
| request = {"data":"SPBFUT|SiH0","id":"1","cmd":"getQuoteLevel2","t":""} |
| raw_data = json.dumps(request) |
| sok_requests.sendall((raw_data+CRLF).encode()) |
| packet = sok_requests.recv(bufsize) |
| if len(packet) < bufsize: |
| data = json.loads(data.decode('cp1251')) |
print(data)