myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> Проблемы с общением хаб--клиент

Теги
Нет тегов для показа
keyviewer
сообщение 29.8.2014, 16:59
Сообщение #1


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 29.8.2014
Пользователь №: 12 495
Спасибо сказали: 0 раз




Добрый день, решил изучить протокол NMDC и быстренько проверить свои знания.
Использовал сначала python третей ветки, но столько костылей пришлось делать...
Перешел на вторую. Но не получается пройти дальше по плану!
CODE
# -*- coding: utf-8 -*-
import socket,re
nmdc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
nmdcServer = "192.168.0.2"
nmdcPort = 411
nmdc.connect((nmdcServer, nmdcPort))
def senD(data):
print u'Клиент > ',data[:40]
nmdc.send(data)
def L2K(lock):
lock = re.findall('\$Lock[\s](.*?)[\s]', lock)[0]
key = {}
for i in xrange(1, len(lock)):key[i] = ord(lock[i]) ^ ord(lock[i-1])
key[0] = ord(lock[0]) ^ ord(lock[len(lock)-1]) ^ ord(lock[len(lock)-2]) ^ 5
for i in xrange(0, len(lock)):key[i] = ((key[i]<<4) & 240) | ((key[i]>>4) & 15)
out = ""
for i in xrange(0, len(lock)):out += unichr(key[i])
out = out.replace(u'\0', u'/%DCN000%/').replace(u'\5',u'/%DCN005%/').replace(u'\44', u'/%DCN036%/')
out = out.replace(u'\140', u'/%DCN096%/').replace(u'\174',u'/%DCN124%/').replace(u'\176', u'/%DCN126%/')
return out.encode('utf-8')
BR=0
while True:
data = nmdc.recv(2048)
print u'Хаб > ',data
#if "$Lock" in data:
# senD("$Key %s|$ValidateNick %s|" % (L2K(data), 'test')) РАЗРЫВ СОЕДИНЕНИЯ!
if "$Lock" in data:
senD("$Supports QuickList|$Key %s|" % (L2K(data)))
if data == '':# защита от принтовки пустых строк при разрыве соединения
BR+=1
if BR==10:break
"""
Хаб: --> $Lock [Код] Pk=[PrimaryKey]|
Клиент: --> $Key [Рассчитанный_ключ]|$ValidateNick [Ник]|
Хаб: --> $HubName [Имя_хаба]|$Hello [Ник]|
Клиент: --> $Version [Версия]|$GetNickList|$MyINFO [Строка]|
Хаб: --> Отсылает список пользователей.
"""

Сначала думал, что может ключ неверный, но при отправки senD("$Supports QuickList|$Key %s|" % (L2K(data)))
Получал: $Supports QuickList| 20
Значит с ним все в порядке, я уже не знаю... Может что-то не так с "$Key %s|$ValidateNick %s|"
Помогите пожалуйста разобраться с ним.
Go to the top of the page
+Quote Post
Nickolya
сообщение 30.8.2014, 21:34
Сообщение #2


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Не знаю, сильно ли помогу. Может я уже сильно отстал от хабов, но:
1. хабы работают не в утф (поправьте, если уже не так)
2. очень поможет описанные тут примеры: Описание Протокола NMDC
3. есть готовые примеры на пхп, можете на них опираться (искать на форуме), как пример: Public PHP hublist by Enyby


Спасибо сказали:
Go to the top of the page
+Quote Post
keyviewer
сообщение 30.8.2014, 23:59
Сообщение #3


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 29.8.2014
Пользователь №: 12 495
Спасибо сказали: 0 раз




Цитата(Nickolya @ 30.8.2014, 22:34) *
Не знаю, сильно ли помогу. Может я уже сильно отстал от хабов, но:
1. хабы работают не в утф (поправьте, если уже не так)
2. очень поможет описанные тут примеры: Описание Протокола NMDC
3. есть готовые примеры на пхп, можете на них опираться (искать на форуме), как пример: Public PHP hublist by Enyby

Я кстати это тоже подозреваю, но странно то, что при quick ключ подходит, хотя он закодирован в UTF-8, надо еще потестить мне, потом отпишусь о результатах!
Спасибо за ответ =)
Я брал оттуда инфу как раз таки, кстати в локе для питона имеются символы как: u'', что означает кодировку именно в UTF
Странно это как-то...
Go to the top of the page
+Quote Post
Setuper
сообщение 31.8.2014, 9:38
Сообщение #4


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Обратите внимание на характеристику QuickList.
Если хаб поддерживает данную характеристику, и вы отсылаете её на хаб, то последовательность входа немного другая. В частности, на хаб не следует отсылать команду $ValidateNick.

см. Последовательность входа на хаб, который поддерживает характеристику QuickList


Спасибо сказали:
Go to the top of the page
+Quote Post
Alexey
сообщение 31.8.2014, 19:08
Сообщение #5


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Цитата(keyviewer @ 31.8.2014, 0:59) *
странно то, что при quick ключ подходит, хотя он закодирован в UTF-8

Если тестируется на птоке, то там правильность ключа не проверяется у клиентов, поддерживающих расширения протокола.


Спасибо сказали:
Go to the top of the page
+Quote Post
keyviewer
сообщение 31.8.2014, 23:14
Сообщение #6


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 29.8.2014
Пользователь №: 12 495
Спасибо сказали: 0 раз




Спасибо, подумаю еще, но попозже, недельки через две. Просто счастлив буду если все с ходу получиться, конечно, перед этим начитавшись документации и вдохновленный новыми силами на подвиги super_man.gif
И да, просто безумно рад, что документация у Вас на русском языке и причем полная! Порой забугорные читать противно, но они содержат много всего полезного =)
Go to the top of the page
+Quote Post
Saymon21
сообщение 23.9.2014, 21:30
Сообщение #7


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Полная документация по nmdc протоколу? Есть тут же на форуме.
Кстати. У меня тут есть запил nmdc пингера на питоне втором. Ваял как-то давным на досуге. Нельзя отнести к стейблу, но работал нормально с ptokax, verlihub, rushub. C flexhub были проблемы. Дальше не помню тестировал или нет. Допиливать там надо тоже не мало, и ваще лучше перевести на какой нить twisted. Щас там голый сокет. Могу как нить куда нить скинуть.

зы. Полурабочий самопальный адц пингер есть на питоне даже.
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsПротив проблемы - Ваш ник занят
(ValidateDenideArrival) VALIDATE_DENIDE_ARRIVAL
0 Sezam 4 054 1.3.2018, 8:04 Посл. сообщение: Sezam
No New Posts Topic has attachmentsЧат клиент для DC++ (только чат)
5 мамин_парень 7 987 15.10.2017, 15:22 Посл. сообщение: CyberGhost404
No new Topic has attachmentsDDD++ – лёгкий и быстрый DC++ клиент
Преднастроенный клиент с готовыми списками хабов
114 Damaks 125 302 19.5.2016, 10:06 Посл. сообщение: dimetro
No New Posts DC-клиент с картинкой вместо фона
2 Анима 5 923 29.3.2015, 20:54 Посл. сообщение: MIKHAIL
No New Posts Клиент для Mydc
Android
5 Артём 8 473 8.3.2015, 12:24 Посл. сообщение: Saymon21
No new Topic has attachmentsКлиент: LiveDC
Наверное, самый молодой из клиентов
29 Erty Hackward 29 482 4.4.2014, 14:20 Посл. сообщение: Angel_D
No new votes Опрос: Topic has attachmentsМобильный Dc Клиент
JAVA
26 Wariner 36 519 23.11.2013, 16:00 Посл. сообщение: Артём
No New Posts DC-Клиент для iPhone
Существует ли он?
2 X-Sky 9 256 13.10.2013, 17:54 Посл. сообщение: X-Sky
No New Posts От: Клиент: LiveDC
От темы с ID: 5484
0 Артём 4 246 10.9.2013, 10:03 Посл. сообщение: Артём
No New Posts Проблемы с Greylink на Ptokax хабе
0 tammi_0909 6 091 12.2.2013, 14:29 Посл. сообщение: tammi_0909
No New Posts ВАЖНО: Topic has attachmentsКлиент: Apexdc++
8 Setuper 18 359 13.11.2012, 0:54 Посл. сообщение: Alexey
No New Posts Пишу свой клиент
13 Charlz_Klug 15 642 30.9.2012, 10:14 Посл. сообщение: Saymon21
No New Posts Проблемы с Webhubconfig
1 jekasumy 5 262 4.3.2012, 23:46 Посл. сообщение: Saymon21
No new Непонятные проблемы с уcтановкой Rushub на Freebsd 8.2 x64
18 LEXSOR 18 392 20.10.2011, 9:48 Посл. сообщение: mariner
No New Posts Проблемы с установкой LUA-GD
1 HunteX 8 299 20.7.2011, 8:43 Посл. сообщение: mariner

 



RSS Сейчас: 4.12.2024, 15:40