powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Размер получаемого файла
9 сообщений из 9, страница 1 из 1
Размер получаемого файла
    #33594514
moonman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi всем! Вот пришлось изучать работу с сокетами в windows.. Плиз, подскажите как получить размер получаемого/передаваемого файла. За тупость прошу не ругать, так как новичок в этой области.
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33594523
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
единственный разумный выход, который мне видится - это передавать размер файла предварительно числом с фиксированным числом байт.

это уже конечно будет подобие протокола :)
Так что, имеет смысл подумать над протоколом а не его подобием :)
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33594527
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читать, и считать каличиства байт.
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33594533
moonman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Примерно ясно, будем грызть дальше ) В продолжение вопроса :

- -- Как изменить скорость закачки для конкретного приложения??? -----
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33594828
_shumer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перейти на спутниковый интернет =)
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33597061
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moonmanHi всем! Вот пришлось изучать работу с сокетами в windows.. Плиз, подскажите как получить размер получаемого/передаваемого файла. За тупость прошу не ругать, так как новичок в этой области.

если идёт речь об ожидании на сокете...то надо смотреть флаги. Должен быть флаг запроса размера, без выборки буффера приёма... ну и тайм аут ожидания...при выхода из ожидания - аллокировать память, запросить уже с данной длиной выборку самих данных... либо если не возможно аллокировать - черпать покусочно...

вроде как всё просто, но нуна помнить одну вещь...
канал TCP/IP потоковый, а не пакетный...Т.е. посланные два кванта данных - могут прийти как одын большой...


с уважением
(круглый)
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33597261
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДолжен быть флаг запроса размера, без выборки буффера приёма...

насколько я знаю, таких флагов нет- то есть все равно придется сначала весь поток принять, до окончания - а потом уже сделать вывод, сколько именно байт.
Хотя бы потому, что TCP не знает, что такое "файл" - он ведь просто данные через буфер передает потоком.
Скажем точно так же как нельзя узнать "размер файла" в пайпе - теоретически "файл" может быть безразмерный :-)
Так что действительно - надо делать некий протокол, в котором в заголовке передавать размер файла.
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33597325
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--...насколько я знаю, таких флагов нет......

врать не будю...
а Вы знаете, лет дцать назад - я так же думал ! :)

а теперь тест на внимательность...
читаем, что начиркано выше....

"канал TCP/IP потоковый, а не пакетный...Т.е. посланные два кванта данных - могут прийти как одын большой..."

это раз...


"Хотя бы потому, что TCP не знает, что такое "файл" - он ведь просто данные через буфер передает потоком"

простите а о файле лично я речь - не вёл...
НО(!)
в протоколе TCP/IP существует понятие ВЫБОРКА БУФФЕРА самого протокола...вот именно об ентой батве я и вёл речь...

удачи Вам
(круглый)
ЗЫ
Инфа о флагах - есть в МСДН, правда не на поверхности....
...
Рейтинг: 0 / 0
Размер получаемого файла
    #33597373
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпростите а о файле лично я речь - не вёл...
я не о Вашем посте - а в общем :-)

Инфа о флагах - вероятно имеется в виду setsockopt()
Ессессна, наизусть флаги не знаю (именно такого не видел, врать не буду) , но из логики TCP если такой флаг и есть -
все равно придется файл принимать до конца просто не записывая в буфер - по накладным расходам это крутовато. Равносильно тому, что делать двойную работу. Ведь send/recv возможны, пока не произошел close(). Нет гарантии, что что-нибудь не прилетит , пока сокет не закрыт отправляющей стороной.
Собственно, достатьчгно вспомнить процедуру закрытия сокета.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Размер получаемого файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]