Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 06:49   #1
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию Как работает торрент?

Интересует, как торрент-клиент определяет, сколько соединений ему открывать для скачивания файла? Ну то есть (пример), на роздаче 1000 людей, когда клиент качает, он соединяеться сразу с несколькими людьми, не со всеми же, как он определяет, со сколькими ему надо соединиться, для максимальной скорости? Или вообще, можете чуть-чуть описать этот момент, кто знает, ии ссылку, а то чёт не могу найти.
И второе торрент использует асинхронные или блокируемые сокеты?
Это ещё не конец и даже не начало конца, это возможно только конец начала.

Последний раз редактировалось pufystyj; 15.11.2012 в 06:58.
pufystyj вне форума Ответить с цитированием
Старый 15.11.2012, 09:18   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Все это детали реализации. Многое настраивается в опциях клиентов.
p51x вне форума Ответить с цитированием
Старый 15.11.2012, 13:44   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Универсального алгоритма определить нужное количество соединений нет и быть не может, потому что скорость зависит не только от количества соединений, но и от характеристик *принимающей* стороны. Разные клиенты гадают по разному.
waleri вне форума Ответить с цитированием
Старый 15.11.2012, 14:46   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

TC, вам стоит почитать статью "Кодим BitTorrent-клиент" Игоря Антонова. Находится в первых строках поисковика. Думаю, многие вопросы отпадут.

===============

Цитата:
Слова мають те значення, яке надає їм той хто говорить, а не той хто слухає.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.11.2012, 15:59   #5
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

Ясно, ну я как раз спрашивал об этой характеристке принимащей сторона.
За статью спасибо.
За исправления тоже, видел читал, посмотрел (пару месяцев назад) свои предыдущие темы, понял что за бред я писал и оставил это, как напоминание, что бредить не надо.
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 17.11.2012, 06:55   #6
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

В даной статье дано максимальное кол-во соединений 100, если это делать блокируемыми сокетами - 100 потоков будут очень грузить комп, потому надо это делать через ассинхронные сокеты, не так ли? Или я ошибась и асинхронные будут больше комп грузить. А где почитать о асинхронных сокетах? ЗАрание спасибо.
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 17.11.2012, 12:20   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Читайте документацию к функции select()
waleri вне форума Ответить с цитированием
Старый 18.11.2012, 04:02   #8
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

Вы имеете ввиду функцию WSAAsyncSelect()?

Или вот эта http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx -?

Ага... почитал,как я понима для винды нужно WSAEventSelect()
Кстати ещё нашёл книгу «Программирование в сетях Microsoft Windows» .
Это ещё не конец и даже не начало конца, это возможно только конец начала.

Последний раз редактировалось pufystyj; 18.11.2012 в 04:28.
pufystyj вне форума Ответить с цитированием
Старый 18.11.2012, 12:00   #9
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Конечно, можно использовать любую из них но для WSAEventSelect вам понадобится по одному потоку на каждые 64 сокета а WSAAsyncSelect требует HWND.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Торрент клиент pbt Софт 14 28.02.2015 21:09
Торрент SkrudjMakdak Софт 2 14.06.2012 11:46
как написать открытый торрент трекер с нуля на php roulis2844sasha PHP 0 25.03.2012 12:59
Торрент Бубликова Софт 13 24.01.2009 00:06