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

start [/forum/topic.php?fid=57&fpage=367&tid=2031776]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 391ms |

| 0 / 0 |
