
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.03.2006, 18:32
|
|||
|---|---|---|---|
|
|||
Размер получаемого файла |
|||
|
#18+
Hi всем! Вот пришлось изучать работу с сокетами в windows.. Плиз, подскажите как получить размер получаемого/передаваемого файла. За тупость прошу не ругать, так как новичок в этой области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2006, 18:49
|
|||
|---|---|---|---|
Размер получаемого файла |
|||
|
#18+
единственный разумный выход, который мне видится - это передавать размер файла предварительно числом с фиксированным числом байт. это уже конечно будет подобие протокола :) Так что, имеет смысл подумать над протоколом а не его подобием :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2006, 18:59
|
|||
|---|---|---|---|
Размер получаемого файла |
|||
|
#18+
Читать, и считать каличиства байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2006, 19:22
|
|||
|---|---|---|---|
|
|||
Размер получаемого файла |
|||
|
#18+
Примерно ясно, будем грызть дальше ) В продолжение вопроса : - -- Как изменить скорость закачки для конкретного приложения??? ----- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.03.2006, 11:46
|
|||
|---|---|---|---|
|
|||
Размер получаемого файла |
|||
|
#18+
Перейти на спутниковый интернет =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.03.2006, 15:28
|
|||
|---|---|---|---|
Размер получаемого файла |
|||
|
#18+
moonmanHi всем! Вот пришлось изучать работу с сокетами в windows.. Плиз, подскажите как получить размер получаемого/передаваемого файла. За тупость прошу не ругать, так как новичок в этой области. если идёт речь об ожидании на сокете...то надо смотреть флаги. Должен быть флаг запроса размера, без выборки буффера приёма... ну и тайм аут ожидания...при выхода из ожидания - аллокировать память, запросить уже с данной длиной выборку самих данных... либо если не возможно аллокировать - черпать покусочно... вроде как всё просто, но нуна помнить одну вещь... канал TCP/IP потоковый, а не пакетный...Т.е. посланные два кванта данных - могут прийти как одын большой... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.03.2006, 16:20
|
|||
|---|---|---|---|
Размер получаемого файла |
|||
|
#18+
авторДолжен быть флаг запроса размера, без выборки буффера приёма... насколько я знаю, таких флагов нет- то есть все равно придется сначала весь поток принять, до окончания - а потом уже сделать вывод, сколько именно байт. Хотя бы потому, что TCP не знает, что такое "файл" - он ведь просто данные через буфер передает потоком. Скажем точно так же как нельзя узнать "размер файла" в пайпе - теоретически "файл" может быть безразмерный :-) Так что действительно - надо делать некий протокол, в котором в заголовке передавать размер файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.03.2006, 16:34
|
|||
|---|---|---|---|
Размер получаемого файла |
|||
|
#18+
--null--...насколько я знаю, таких флагов нет...... врать не будю... а Вы знаете, лет дцать назад - я так же думал ! :) а теперь тест на внимательность... читаем, что начиркано выше.... "канал TCP/IP потоковый, а не пакетный...Т.е. посланные два кванта данных - могут прийти как одын большой..." это раз... "Хотя бы потому, что TCP не знает, что такое "файл" - он ведь просто данные через буфер передает потоком" простите а о файле лично я речь - не вёл... НО(!) в протоколе TCP/IP существует понятие ВЫБОРКА БУФФЕРА самого протокола...вот именно об ентой батве я и вёл речь... удачи Вам (круглый) ЗЫ Инфа о флагах - есть в МСДН, правда не на поверхности.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.03.2006, 16:47
|
|||
|---|---|---|---|
Размер получаемого файла |
|||
|
#18+
авторпростите а о файле лично я речь - не вёл... я не о Вашем посте - а в общем :-) Инфа о флагах - вероятно имеется в виду setsockopt() Ессессна, наизусть флаги не знаю (именно такого не видел, врать не буду) , но из логики TCP если такой флаг и есть - все равно придется файл принимать до конца просто не записывая в буфер - по накладным расходам это крутовато. Равносильно тому, что делать двойную работу. Ведь send/recv возможны, пока не произошел close(). Нет гарантии, что что-нибудь не прилетит , пока сокет не закрыт отправляющей стороной. Собственно, достатьчгно вспомнить процедуру закрытия сокета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2031776]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
139ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 427ms |

| 0 / 0 |
