Вопрос вот в чём: Вот я послал это хабу. И что дальше??? Как мне принять ответ??? На мой сокет поступает огромное количество данных. Т.е. я правильно понимаю, что нужно парсить эти данные??? Но что в них искать? Я никак не могу победить кодировку данных.
Соединяюсь с хабом dc.filimania.com:411. Код на Java у меня.
Преобразую так key=new String(p2preq, "windows-1251"); В ответе изредка появляется текст на русском и английском. А остальное - это кракозябры. Регулярно парсится мой ник. Как я понял это передаётся список ников постоянно.
Разобрался с кодировкой. Ошибочно использовал ZPipe0. Из за этого всё приходило в сжатом виде.
Со всем разобрался. В описании протокола много проелов и не ясностей. Долго не мог понять где ловить поисковой ответ от сервера. Как соединятся с пользователями для скачивания файлов...но всё решилось. Вот код, если кому-то интересно. Это грубый черновик конечно же. Тут чтение первых скольки-то байт фильма Неудержимые 3 с хаба филимания у одного из пользователей. Проверено. Работает.
заходи на местный хаб dchub://hub.mydc.ru и спрашивай в чате (или у меня там в личке, чем смогу - помогу)
Автор: PPA 15.12.2014, 15:06
Цитата(Master255 @ 14.12.2014, 4:56)
Делаю программу, работающую по этому протоколу. Нужен поиск по TTH и скачивание найденного файла.
А это у тебя будет робот? или ты просто изучаешь как оно внутри работает что заметил 1. Ты используешь пассивный поиск специально? думаю при нагрузке от бота админы вычислят это и забанят 2. У тебя в тэге закос под FlylinkDC++ предлагаю поменять на свой ) 3. Код заливай на github )
Автор: Master255 16.12.2014, 21:12
Во первых! Вот http://mydc.ru/r/?http://nmdc.sourceforge.net/NMDC.html нормальная инструкция по протоколу, а не то что на этом сайте-форуме и в ссылках. Надо обновить ссылки
Цитата(PPA @ 15.12.2014, 15:06)
А это у тебя будет робот? или ты просто изучаешь как оно внутри работает что заметил 1. Ты используешь пассивный поиск специально? думаю при нагрузке от бота админы вычислят это и забанят 2. У тебя в тэге закос под FlylinkDC++ предлагаю поменять на свой ) 3. Код заливай на github )
Я делаю медиа плеер, а в будущем гибридное облако для обмена данными. Ничего противозаконного. Код залью на гит хаб. Вот здесь будет код http://mydc.ru/r/?https://github.com/master255/ImmortalPlayer Это моё приложение для андройд программистов, что бы они тоже могли писать свои программы с использованием моих технологий. Код принял уже рабочий вид.
Скорей всего будет ничего не понятно. Так как тут не полный код. Но суть понять можно. Вот процедура подключения
Код
private boolean connectDC() { p2padrr = new InetSocketAddress(Hub, dcPort); p2pServer = new Socket(); p2preq = new byte[1024 * 10]; try { p2pServer.connect(p2padrr); p2pServer.getInputStream().read(p2preq); str = new String(p2preq, CHARENCODING); str = str.substring(str.indexOf("$Lock ") + 6, str.indexOf(" Pk=")); p2pServer .getOutputStream() .write(("$Supports UserCommand NoGetINFO NoHello UserIP2 TTHSearch|" + lockToKey(str) + "$ValidateNick " + nick + "|" + "$Version 1,0091|$MyINFO $ALL " + nick + " <FlylinkDC++ V:r502-x64,M:P,H:1/0/0,S:15>$ $100 $$600000000000$|") .getBytes()); p2pServer.getOutputStream().flush(); p2preq = new byte[1024 * 10]; while ((bytes_read = p2pServer.getInputStream().read(p2preq)) != -1) { str = new String(p2preq, CHARENCODING); if (str.contains("$ValidateDenide")) { nick = nick + Integer.toString(postFix); postFix = postFix + 1; if (postFix > 100) { errorDC = true; return false; } else { connectDC(); } } if (str.contains("$Search")) { errorDC = false; return true; } } } catch (Exception e) {} errorDC = true; return false; }
Этот кусок ищет, запрашивает, подключается и качает.
конечно это ещё первая версия...и тут без раздачи и текст запросов может где-то не совпасть...но...передача данных уже идёт...байт в байт...и клипы играют.
А программа будет вот эта http://mydc.ru/r/?https://play.google.com/store/apps/details?id=com.medialibrary.mycollection http://mydc.ru/r/?http://4pda.ru/forum/index.php?showtopic=580001
Автор: alex82 17.12.2014, 1:44
Master255, и в чем же заключается ненормальность нашего описания протокола? Нашли ошибки? Покажите, и мы исправим их.
P. S. Полагаю, многим юзерам и админам хабов не понравится Ваша личерская программа, и они начнут яростно с ней бороться.
Автор: Master255 17.12.2014, 1:59
Цитата(alex82 @ 17.12.2014, 1:44)
Master255, и в чем же заключается ненормальность нашего описания протокола? Нашли ошибки? Покажите, и мы исправим их.
P. S. Полагаю, многим юзерам и админам хабов не понравится Ваша личерская программа, и они начнут яростно с ней бороться.
А может мне за вас ещё всё исправить? Что вы несёте! Я программист! Высказал своё мнение о том что та инструкция лучше чем все ваши вместе взятые. Вы и сами должны знать о том что у вас там не так. У вас многие теги вообще не описаны. Мало конкретных примеров. Пишите что данные идут через udp, а они идут через TCP. По вашей инструкции программу не написать. Мне приходилось много гуглить. И после того как я нашёл эту инструкцию всё встало на свои места.
Читайте внимательно. В моей программе нет ничего противозаконного. То что она не раздаёт - это временный факт. Который не выгоден не только хабам, но и пользователям этой программы. Я же не могу сразу написать звездолёт. Пишу по частям...как могу. И так должны спасибо говорить.
Автор: alex82 17.12.2014, 3:20
Цитата(Master255 @ 17.12.2014, 0:59)
А может мне за вас ещё всё исправить? Что вы несёте! Я программист! Высказал своё мнение о том что та инструкция лучше чем все ваши вместе взятые. Вы и сами должны знать о том что у вас там не так. У вас многие теги вообще не описаны. Мало конкретных примеров. Пишите что данные идут через udp, а они идут через TCP. По вашей инструкции программу не написать. Мне приходилось много гуглить. И после того как я нашёл эту инструкцию всё встало на свои места.
Дело в том, что Ваше мнение без ссылок на конкретные ошибки выглядит как пук в лужу. С таким же успехом я могу сказать, что Ваша программа хуже чем вон та, и выдолжны немедленно заменить ее на другую.
Нет, спасибо, за нас ничего исправлять не надо. Инструкцию писал человек, разрабатывавший DC-хаб, и он прекрасно знает протокол. Возможно, Setuper при составлении описания протокола пропустил какие-то теги, и допустил какие-то ошибки, ведь он тоже человек, а не робот.
Конкретных примеров навалом - как минимум 4 опенсорсных хаба, и целая куча опенсорсных клиентов. Качайте и ковыряйте на здоровье. Или Вы хотите, чтобы Вам разжевали и в рот положили?
Цитата
Пишу по частям...как могу. И так должны спасибо говорить.
Спасибо за что? За конструктивную критику? Ну так я пока что не вижу конструктива.
Автор: Setuper 17.12.2014, 10:12
Цитата(Master255 @ 17.12.2014, 2:59)
А может мне за вас ещё всё исправить? Что вы несёте! Я программист! Высказал своё мнение о том что та инструкция лучше чем все ваши вместе взятые. Вы и сами должны знать о том что у вас там не так. У вас многие теги вообще не описаны. Мало конкретных примеров. Пишите что данные идут через udp, а они идут через TCP. По вашей инструкции программу не написать. Мне приходилось много гуглить. И после того как я нашёл эту инструкцию всё встало на свои места.
Читайте внимательно. В моей программе нет ничего противозаконного. То что она не раздаёт - это временный факт. Который не выгоден не только хабам, но и пользователям этой программы. Я же не могу сразу написать звездолёт. Пишу по частям...как могу. И так должны спасибо говорить.
Могу сказать Вам как java программист java программисту, что Ваш код просто ужасен. Макаронный код, похожий на код студента.
По поводу каких-то ошибок в описании могу сказать, что возможно Вы сами еще не до конца разобрались в протоколе и путаете механизмы активного и пассивного поиска.
Автор: HackFresse 17.12.2014, 10:53
Цитата(Master255 @ 17.12.2014, 1:59)
А может мне за вас ещё всё исправить? Что вы несёте! Я программист! Высказал своё мнение о том что та инструкция лучше чем все ваши вместе взятые. Вы и сами должны знать о том что у вас там не так. У вас многие теги вообще не описаны. Мало конкретных примеров. Пишите что данные идут через udp, а они идут через TCP. По вашей инструкции программу не написать. Мне приходилось много гуглить. И после того как я нашёл эту инструкцию всё встало на свои места.
Читайте внимательно. В моей программе нет ничего противозаконного. То что она не раздаёт - это временный факт. Который не выгоден не только хабам, но и пользователям этой программы. Я же не могу сразу написать звездолёт. Пишу по частям...как могу. И так должны спасибо говорить.
Сколько много пафоса, однако!
Цитата
Я же не могу сразу написать звездолёт. Пишу по частям...как могу. И так должны спасибо говорить.
Это кто кому должен говорить спасибо? За что? За "абы как написанные части звездолёта"? Спасибо, чо уж там
Цитата
Мне приходилось много гуглить.
Аргументный аргумент.
Цитата
Пишите что данные идут через udp, а они идут через TCP.
Это повод еще раз открыть "нормальную инструкция по протоколу" и увидеть, что и там ТОЖЕ написано про UDP. и ВНЕЗАПНО протоколы зависят от режима подключения. Гуглилось хоть и много, но плохо, да и "нормальную инструкцию" нормально прочитать тоже не получилось.. пичалька
Цитата
Я программист!
Преклоняемся, о великий! Как посмели мы сомневаться, как сразу не признали.. Прости нас, ничтожных!
Автор: Master255 17.12.2014, 13:22
Цитата(Setuper @ 17.12.2014, 10:12)
Могу сказать Вам как java программист java программисту, что Ваш код просто ужасен. Макаронный код, похожий на код студента.
По поводу каких-то ошибок в описании могу сказать, что возможно Вы сами еще не до конца разобрались в протоколе и путаете механизмы активного и пассивного поиска.
Вы андройд разработчик? в чём ужас?? Хотя бы один пример где просто ужасно???
Ничего я не путаю. Про все механизмы знаю. Уже наизусть помню половину команд протокола и их синтаксис.
Цитата(alex82 @ 17.12.2014, 3:20)
Дело в том, что Ваше мнение без ссылок на конкретные ошибки выглядит как пук в лужу. С таким же успехом я могу сказать, что Ваша программа хуже чем вон та, и выдолжны немедленно заменить ее на другую.
Нет, спасибо, за нас ничего исправлять не надо. Инструкцию писал человек, разрабатывавший DC-хаб, и он прекрасно знает протокол. Возможно, Setuper при составлении описания протокола пропустил какие-то теги, и допустил какие-то ошибки, ведь он тоже человек, а не робот.
Конкретных примеров навалом - как минимум 4 опенсорсных хаба, и целая куча опенсорсных клиентов. Качайте и ковыряйте на здоровье. Или Вы хотите, чтобы Вам разжевали и в рот положили?
Спасибо за что? За конструктивную критику? Ну так я пока что не вижу конструктива.
Я пишу для программистов. Код открытый! Другие будут брать мой код и кодить вам программы о которых вы сейчас только мечтаете. За это и спасибо.
Автор: Ksan 17.12.2014, 15:18
Считаю, что нужно всем умерить пыл и снизить тон разговора! Человек делает нечто полезное, сгоряча, от незнания специфики этого форума, говорит некоторые нелицеприятные слова, но всё же остальным не стоит сразу же закусывать удила, ибо это идёт не на пользу общему делу! Человек закроется и начнёт что-то очень нужное выдавать на гора в других местах...а зачем? Нужно найти компромисс, показывать друг другу ошибки, признавать ошибки, если поняли, что они присутствуют... И в любом случае следить за словами! Обидеть художника может каждый.. но если вы сами художники, тем более должны понимать, что обидно слышать неприятные слова вместо помощи и понимания.. Учитесь терпению у министра иностранных дел России С. Лаврова, ребята! И у В.Чуркина, нашего представителя в ООН. Надеюсь на понимание!
Автор: alex82 17.12.2014, 21:15
Цитата
Вы андройд разработчик? в чём ужас?? Хотя бы один пример где просто ужасно???
Я ни разу не android-разработчик, и совсем не знаю java но даже я вижу ужас, от которого стынет кровь в жилах.
Код
str.contains("$ValidateDenide")
Т.е. если строка содержит $ValidateDenide в любом месте, то эта строка считается указанной командой. В таком случае отфильтровать Ваш клиент будет не то что просто, а очень просто. Для этого достаточно отправить ему чушь вроде этой:
Код
$oZshb6243dss34 $ValidateDenide|
Нормальные клиенты проигнорируют это, ибо оно не является командой протокола, а Ваш клиент отключится, посчитав, что ник занят.
И так по всему коду. Однако, в результате минутного гугления мы выходим на http://mydc.ru/r/?http://docs.oracle.com/javase/6/docs/api/java/lang/String.html страницу, где мы находим эту функцию:
Код
public boolean startsWith(String prefix)
И логика подсказывает нам, что для проверки команд протокола следует использовать именно ее.
Так что Вы не знаете не только протокол DC, но даже тот язык, на котором пытаетесь писать программы. А посему умерьте пафос, и учитесь, учитесь, и еще раз учитесь.
Автор: Master255 18.12.2014, 15:08
Цитата(alex82 @ 17.12.2014, 21:15)
Я ни разу не android-разработчик, и совсем не знаю java но даже я вижу ужас, от которого стынет кровь в жилах.
Код
str.contains("$ValidateDenide")
Т.е. если строка содержит $ValidateDenide в любом месте, то эта строка считается указанной командой. В таком случае отфильтровать Ваш клиент будет не то что просто, а очень просто. Для этого достаточно отправить ему чушь вроде этой:
Код
$oZshb6243dss34 $ValidateDenide|
Нормальные клиенты проигнорируют это, ибо оно не является командой протокола, а Ваш клиент отключится, посчитав, что ник занят.
И так по всему коду. Однако, в результате минутного гугления мы выходим на http://mydc.ru/r/?http://docs.oracle.com/javase/6/docs/api/java/lang/String.html страницу, где мы находим эту функцию:
Код
public boolean startsWith(String prefix)
И логика подсказывает нам, что для проверки команд протокола следует использовать именно ее.
Так что Вы не знаете не только протокол DC, но даже тот язык, на котором пытаетесь писать программы. А посему умерьте пафос, и учитесь, учитесь, и еще раз учитесь.
У вас явный эффект http://mydc.ru/r/?http://. Пафоса тут никакого нет. Есть недопонимание происходящего с вашей стороны. То что вы ниразу не разработчик мне ясно понятно. Не понятно одно - как вы смеете давать советы, если не разработчик??? Что это за новости вообще? Если вы пользователь, то вы можете лишь спрашивать когда заработает то или другое и желать каких-то новых функций. Зачем вы лезите туда где ничего не понимаете и пытаетесь нагуглить? Гуглить полезно и критику к коду я тоже люблю. Особенно когда она по делу. Ну я не знаю, с чего начать даже. Ваш коммент ни в какие ворота. Проверка наличия $ValidateDenide происходит только при регистрации на хабе. В этот момент моему клиенту ничего нельзя послать, кроме стандартных команд автоответов хаба. На хабе тысячи пользователей. Зачем вообще кому-то что-то слать??? Я уже повторял, что моя программа не будет нарушать никаких законов хабов. Проверка contains делается потому что ответы через сокет поступают не предсказуемо. Я поставил буфер в 10к\байт. И чем закончатся предыдущие 10к.байт и начнутся следующие непонятно. Это всё сделано потому что сначала хаб присылает список ников. Который заканчивается началом команды $Search. И между командой $Search и началом авторизации никто ничего не может мне послать, если хаб не блокирует меня по ipадресу и тогда у меня даже коннекта не получится. И отсутствие коннекта тоже продумано. А если брать ещё то что разные хабы работают по разному и отсылают вместо ников ещё какую-то ерунду...а в спецификации чётко прописано, что просто в чат невозможно скинуть символы $, |, то команда contains именно то что нужно. А команда startsWith может ошибаться даже если на один бит будет сдвиг. А это опасно продолжением отсылки команд и отключением от сервера. Это предусмотрено. Но в таком случае программа будет делать много циклов что бы просто авторизоваться. А это много времени...что крайне не допустимо по условию задачи.
Можно ещё много рассказывать почему вы не правы, но я думаю можно сказать коротко - вы не программист!
Цитата(Ksan @ 17.12.2014, 15:18)
Считаю, что нужно всем умерить пыл и снизить тон разговора! Человек делает нечто полезное, сгоряча, от незнания специфики этого форума, говорит некоторые нелицеприятные слова, но всё же остальным не стоит сразу же закусывать удила, ибо это идёт не на пользу общему делу! Человек закроется и начнёт что-то очень нужное выдавать на гора в других местах...а зачем? Нужно найти компромисс, показывать друг другу ошибки, признавать ошибки, если поняли, что они присутствуют... И в любом случае следить за словами! Обидеть художника может каждый.. но если вы сами художники, тем более должны понимать, что обидно слышать неприятные слова вместо помощи и понимания.. Учитесь терпению у министра иностранных дел России С. Лаврова, ребята! И у В.Чуркина, нашего представителя в ООН. Надеюсь на понимание!
Я вообще не знаю о чём тут разговаривать. Тема вроде бы исчерпана. Ссылки я все указал. Код уже на гитхабе. Кому надо найдёт.
Автор: PPA 18.12.2014, 16:15
Цитата(Master255 @ 18.12.2014, 15:08)
Я вообще не знаю о чём тут разговаривать. Тема вроде бы исчерпана. Ссылки я все указал. Код уже на гитхабе. Кому надо найдёт.
Хорошо что продвигаешь nmdc на мобилки и код открытый то что у тебя он не идеальный - так у всех есть говнокод но если это работает - то уже победа отрефакторишь потом. p.s. Если не сложно замени сразу тэг клиента FlylinkDC на ImmortalPlayer http://mydc.ru/r/?https://github.com/master255/ImmortalPlayer/blob/1c87f3d5fb48f6cee57e2c37895f77921a3bc0f5/src/com/immortalplayer/HttpGetProxy.java#L337 на хабах будет сразу видно кто пользуется твоей программкой.
Автор: Master255 18.12.2014, 16:27
Цитата(PPA @ 18.12.2014, 16:15)
Хорошо что продвигаешь nmdc на мобилки и код открытый то что у тебя он не идеальный - так у всех есть говнокод но если это работает - то уже победа отрефакторишь потом. p.s. Если не сложно замени сразу тэг клиента FlylinkDC на ImmortalPlayer http://mydc.ru/r/?https://github.com/master255/ImmortalPlayer/blob/1c87f3d5fb48f6cee57e2c37895f77921a3bc0f5/src/com/immortalplayer/HttpGetProxy.java#L337 на хабах будет сразу видно кто пользуется твоей программкой.
Ок
Автор: alex82 19.12.2014, 3:08
Цитата
Есть недопонимание происходящего с вашей стороны.
Тут имеестя некоторое недопонимание с вашей стороны. Мне по большому счету насрать, как будет работать Ваша программа. Того говнокода, что вы выкладывали, вполне достаточно для того, чтобы составить о ней представление. Нет, я не пользователь, и мне все равно, когда там появятся какие-то свистопределки. Я вообще достаточно негативно отношусь к операционной системе, под которую вы пытаетесь написать программу, поскольку видел, как она работает.
Я предложил Вам указать на конкретые ошибки лишь потому, что имею некоторые права на этом форуме, и, как результат, могу эти самые ошибки исправить. И тут понеслось...
Я думаю, все уже поняли, что за http://mydc.ru/r/?http://lurkmore.to/%D0%A8%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA к нам пожаловал, поэтому никто не будет осуждать меня за то, что я включу режим бога аналогичный тому, что имеется у нашего гостя, и немного попетросяню. И так, начнем-с.
Цитата
По вашей инструкции программу не написать. Мне приходилось много гуглить.
А может мне за вас ещё всё написать??? Что вы несёте!!! Я модератор!!!11 Высказал своё мнение о том что неплохо бы дать ссылки на ошибки!!! И где они, ссылки-то???
Цитата
Проверка contains делается потому что ответы через сокет поступают не предсказуемо. Я поставил буфер в 10к\байт. И чем закончатся предыдущие 10к.байт и начнутся следующие непонятно.
У вас явный эффект http://mydc.ru/r/?http://lurkmore.to/%D0%91%D1%8B%D0%B4%D0%BB%D0%BE%D0%BA%D0%BE%D0%B4. Непредсказуемости тут никакой нет. Есть недопонимание происходящего с вашей стороны. То что вы ниразу не разработчик мне ясно понятно. Не понятно одно - как вы смеете писать программы, если не разработчик??? Что это за новости вообще???77 Если вы пользователь, то вы можете лишь спрашивать когда появится та или иная программа и желать каких-то новых программ. Зачем вы лезите туда где ничего не понимаете и пытаетесь написать программу? Гуглить полезно и критику к форуму я тоже люблю. Особенно когда она по делу. Ну я не знаю, с чего начать даже. Ваша программа ни в какие ворота. Судя по Вашим же словам, она работает как предсказательница Ванга - пытается угадать, что же произойдет, а когда у нее это не получается, перезаходит на хаб. Но мы-то знаем, что тот самый символ |, который, как Вы сами сказали, запрещен в чате, запрещен там не просто так. Это символ окончания команды. Проще говоря в DC, который вы уже знаете наизусть, команды выглядят следующим образом:
Из этого следует, что никакой непредсказуемости и неопределенности в протоколе DC нет и не может быть. Каждая команда заканчивается символом |, и после этого сразу же следует другая команда.
Можно ещё много рассказывать почему вы не правы, но я думаю можно сказать коротко - вы не программист!
Цитата
команда contains
Что вы несёте! В языках программирования есть функции и методы, а команды - в футболе.
Цитата
Во первых! Вот http://mydc.ru/r/?http://nmdc.sourceforge.net/NMDC.html нормальная инструкция по протоколу, а не то что на этом сайте-форуме и в ссылках. Надо обновить ссылки
Я вообще не знаю о чём тут разговаривать. Тема вроде бы исчерпана. Протокол описан хорошо. По данному описанию написана не одна реализация DC-клиента. Под каждым постом есть кнопка [!], с помощью которой можно сообщить администрации о найденных ошибках. Кому надо разберется.
P.S. Орфографические и пунктуационные ошибки в данном посте - результат копирования стиля речи автора темы, и они добавлены умышленно. Следовательно, не нужно пинать меня за них.
Автор: Master255 19.12.2014, 4:04
Цитата(alex82 @ 19.12.2014, 3:08)
Тут имеестя некоторое недопонимание с вашей стороны. Мне по большому счету насрать, как будет работать Ваша программа. Того говнокода, что вы выкладывали, вполне достаточно для того, чтобы составить о ней представление. Нет, я не пользователь, и мне все равно, когда там появятся какие-то свистопределки. Я вообще достаточно негативно отношусь к операционной системе, под которую вы пытаетесь написать программу, поскольку видел, как она работает.
Я предложил Вам указать на конкретые ошибки лишь потому, что имею некоторые права на этом форуме, и, как результат, могу эти самые ошибки исправить. И тут понеслось...
Я думаю, все уже поняли, что за http://mydc.ru/r/?http://lurkmore.to/%D0%A8%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA к нам пожаловал, поэтому никто не будет осуждать меня за то, что я включу режим бога аналогичный тому, что имеется у нашего гостя, и немного попетросяню. И так, начнем-с.
А может мне за вас ещё всё написать??? Что вы несёте!!! Я модератор!!!11 Высказал своё мнение о том что неплохо бы дать ссылки на ошибки!!! И где они, ссылки-то???
У вас явный эффект http://mydc.ru/r/?http://lurkmore.to/%D0%91%D1%8B%D0%B4%D0%BB%D0%BE%D0%BA%D0%BE%D0%B4. Непредсказуемости тут никакой нет. Есть недопонимание происходящего с вашей стороны. То что вы ниразу не разработчик мне ясно понятно. Не понятно одно - как вы смеете писать программы, если не разработчик??? Что это за новости вообще???77 Если вы пользователь, то вы можете лишь спрашивать когда появится та или иная программа и желать каких-то новых программ. Зачем вы лезите туда где ничего не понимаете и пытаетесь написать программу? Гуглить полезно и критику к форуму я тоже люблю. Особенно когда она по делу. Ну я не знаю, с чего начать даже. Ваша программа ни в какие ворота. Судя по Вашим же словам, она работает как предсказательница Ванга - пытается угадать, что же произойдет, а когда у нее это не получается, перезаходит на хаб. Но мы-то знаем, что тот самый символ |, который, как Вы сами сказали, запрещен в чате, запрещен там не просто так. Это символ окончания команды.
Ответить нечего. Вы просто http://mydc.ru/r/?http://lurkmore.to/%D0%A2%D1%80%D0%BE%D0%BB%D0%BB%D1%8C. Посмеялся над вашими изречениями))).
Автор: Ksan 19.12.2014, 12:00
Пора на форуме добавить опцию минусования комментов.. Я серьёзно!
Автор: Nickolya 19.12.2014, 13:39
1. Ну а смысл минусования комментов? Заминусуете вы коммент, и что? Полезность комментов получается из количества "Спасибо". Если их 0, то значит и коммент никому полезен не был, отсюда можно уже судить о его содержании
2. Форум чтобы общаться и помогать друг-другу. Не хотите помогать, потролльте/покритикуйте в другом месте.
3. Помнится писал я на луа свой клиент для хаба, и тоже сначала ломал голову над протоколом, но потом все встало на места. Надо просто немного терпения. Писал я кстати по инструкции Сетапера ака Ильи, и все очень замечательно получалось.
Выкладывать сначала весь код нет смысла, пока он не работает полноценно, это ошибка №1. Спрашивать стоит именно про те части программы, что не получаются/не работают. Спрашивать конструктивно и с уважением, тогда и ответ будет соответствующий.
Я пользовался дебаггером, встроенным в клиент, чтобы посмотреть уже реализованное взаимодействие клиент-хаб, так и нагляднее и понятнее. Попробуйте. У каждого хаба еще есть свои тонкости, поэтому попотеть вам придется достаточно долго, чтобы клиент был полноценным. Что за тонкости правда не помню уже.
И конкретный конструктив по логике: вы в буфер получаете какую-то "кашу". Эту кашу вы дробите по символу конца команы протокола, т.е. | И если у вас последняя команда не заканчивается этим символом, значит она не влезла в буфер. Вы этот кусок команды сохраняете, и приклеиваете к началу следующего буфера, который так же дробится по |. И так до бесконечности. Вот тогда никакой непредсказуемости в протоколе не будет. Он достаточно простой и понятный на самом деле.
Автор: Master255 19.12.2014, 15:08
Цитата(Ksan @ 19.12.2014, 12:00)
Пора на форуме добавить опцию минусования комментов.. Я серьёзно!
не надо никаких репрессий. И так в жизни дерьма хватает)))
Автор: PPA 19.12.2014, 15:20
Цитата(Nickolya @ 19.12.2014, 13:39)
Выкладывать сначала весь код нет смысла, пока он не работает полноценно, это ошибка №1. Спрашивать стоит именно про те части программы, что не получаются/не работают. Спрашивать конструктивно и с уважением, тогда и ответ будет соответствующий.
Нет тут никакой ошибки. Весь код должен быть по контролем версий с самого начала разработки и то что он сразу в публичном gitHub ничего плохого в этом нет раньше можно получить замечания и фиксы
Автор: Master255 23.12.2014, 1:48
Пишу щас на visual с++. Нужна помощь...если кто может помочь пишите(хоть в личку хоть в эту ветку)...если поможете, то даже денег заплачу...И хорошее дело сделаете...
Задача такая: есть проект, который прикреплён. Но он на с++ Builder 32-bit написан. А мне надо переписать его на ms visual c++ 64-bit. Разрядность бит - важна для других задач программы, а не для вычисления tth. Программа простая. Берёт файл и вычисляет tth.
Пытаюсь сам разобраться, но с++ и уж тем более с для меня тёмный лес. Буду благодарен.
Любые дистрибы нужных программ можно скачать хоть у меня с http://mydc.ru/r/?http://master255.org/res/%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80%D1%8B/ пароль 123
Вот функцию забери с зависимостями и выкини все про md5 http://mydc.ru/r/?https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/cda6a8746580c8e06fb9d6fedf2d655e585f9b81/client/Util.cpp#L2506
Тут еще проще для понимания код расчета TTH для переменной tmp http://mydc.ru/r/?https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/3d92f8b4e0a143dcab8de9f8eededa3624db184a/windows/MainFrm.cpp#L3003
Автор: Master255 23.12.2014, 19:08
Цитата(PPA @ 23.12.2014, 6:41)
Вот функцию забери с зависимостями и выкини все про md5 http://mydc.ru/r/?https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/cda6a8746580c8e06fb9d6fedf2d655e585f9b81/client/Util.cpp#L2506
Тут еще проще для понимания код расчета TTH для переменной tmp http://mydc.ru/r/?https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/3d92f8b4e0a143dcab8de9f8eededa3624db184a/windows/MainFrm.cpp#L3003
Теперь у меня две проблемы вместо одной. Как ваш код внедрять совсем не понимаю...Там куча самописных типов и методов...где они? в каких файлах не понятно...это надо весь проект качать и вникать ещё и в его работу... Сейчас у меня не работающаяhttp://mydc.ru/r/?https://github.com/master255/SimplyServer . Проблема в которой преобразование типа из array<unsigned char,1> ^' to 'unsigned char *' . И никто не знает как преобразовать! Если array и получается преобразовать в String^ то дальше в unsigned char * никто не знает как... В Эмбаркадеро дела немного лучше. Код компилируется в 32 и 64 бита. В 32 бита программа работает как полагается. В 64 не правильно считает...И я бы приступил к отладке, но Эмбаркадеро пишет, что такой запрос не поддерживается! Когда я нажимаю кнопку запуска в режиме отладки. Может это из-за кода на с? Вот проект Эмбаркадеро http://mydc.ru/r/?http://master255.org/res/%D0%97%D0%B0%D0%BA%D0%B0%D1%87%D0%BA%D0%B8/tth/
Автор: Master255 3.1.2015, 20:22
Цитата(PPA @ 23.12.2014, 6:41)
Вот функцию забери с зависимостями и выкини все про md5 http://mydc.ru/r/?https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/cda6a8746580c8e06fb9d6fedf2d655e585f9b81/client/Util.cpp#L2506
Тут еще проще для понимания код расчета TTH для переменной tmp http://mydc.ru/r/?https://github.com/pavel-pimenov/flylinkdc-r5xx/blob/3d92f8b4e0a143dcab8de9f8eededa3624db184a/windows/MainFrm.cpp#L3003
Я посмотрел функции. Скажите, а вот есть ещё Strong DC 13го года...там в исходниках похожие процедуры. Но код отличается местами. У кого новее??? Там или в fly link ???
Автор: PPA 4.1.2015, 11:14
Цитата(Master255 @ 3.1.2015, 20:22)
Я посмотрел функции. Скажите, а вот есть ещё Strong DC 13го года...там в исходниках похожие процедуры. Но код отличается местами. У кого новее??? Там или в fly link ???
указывайте точнее с урлами - где там. но FlylinkDC++ новее - стронг давно не развивается.
Автор: Master255 12.1.2015, 0:38
Цитата(PPA @ 4.1.2015, 11:14)
указывайте точнее с урлами - где там. но FlylinkDC++ новее - стронг давно не развивается.
Есть релиз http://mydc.ru/r/?https://github.com/master255/SimplyServer Написал на CLI. Потому что на нём писать легче, чем MFC. Программа у меня для нормальных людей. А у нормальных есть нормальные операционки с фреймворками на которых код идёт максимально быстро. Да у меня и не игра...лишняя скорость не нужна. Хотя вычисление TTH на видеокарте не помешало бы)). Но и на С сойдёт. Сейчас допиливаю сжатие конечного файла в gzip. Во фреймворке есть встроенная поддержка сжатия одной командой. Что позволяет добавлять подобные фичи в течение 15-20 минут. Как я понимаю Microsoft не развивает с++ CLI, а в место этого у них C#. Так как код примерно одинаковый. А примеры даны в основном на С#. А на с++ CLI примеров иногда вообще нет. Думаю вот переписать всё на C# тогда уж... На MFC нужно будет много чего искать и переписывать. А надо ли это???
Заметил, что на системах где не стоит фреймворк можно просто подкинуть библиотеку msvcr120.dll и всё начинает работать... Продолжение тут http://mydc.ru/r/?http://4pda.ru/forum/index.php?showtopic=580001&st=40