Hargen
|
Дата: Четверг, 20.06.2013, 20:44 | Сообщение # 1
|
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
|
Есть большой объем данных (допустим, более 100 мб ). Его нужно передать через сокетное соединение. Используется протокол TCP, асинхронные сокеты. Как эти данные лучше передать - если сплошным 100 метровым куском слать - все может повиснуть, по идее надо делить на блоки, но вот какой выбрать для них размер, чтобы не черезчур часто вызывать функцию отправки, что затормозит программу.
Главное - не изобретать велосипед
|
|
|
|
Anton93
|
Дата: Четверг, 20.06.2013, 22:13 | Сообщение # 2
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 311
Статус: Offline
|
Hargen, может быть вывести передачу в отдельный поток? шанс что программа зависнет уменьшится
ICQ: 41896
|
|
|
|
Hargen
|
Дата: Суббота, 22.06.2013, 16:25 | Сообщение # 3
|
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
|
Anton93, Я планирую сделать множество асинхронных сокетов и для них один поток, который будет раздавать им "кванты времени" (хз как иначе назвать) за которые они отправляют каждый на более заданного количества байтов, просто появляется вопрос какой размер блока данных выбрать
Главное - не изобретать велосипед
|
|
|
|
Don_Diego
|
Дата: Пятница, 28.06.2013, 16:25 | Сообщение # 4
|
Продвинутый
Зарегистрирован: 16.04.2012
Группа: Пользователи
Сообщений: 250
Статус: Offline
|
Разрезай файл частями. Однако такой способ подойдет если отправлять непосредственно с компьютера на компьютер. |
|
|
|
xXxSh@dowxXx
|
Дата: Пятница, 28.06.2013, 17:03 | Сообщение # 5
|
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
|
Цитата (Don_Diego)
Однако такой способ подойдет если отправлять непосредственно с компьютера на компьютер.
не совсем, при определенный манипуляциях можно точно так же передавать и через роутеры, и через прочее оборудование, уже обсуждалось
|
|
|
|