пересылка файла клиент-сервер
От: Аноним  
Дата: 13.08.05 21:40
Оценка:
Как правильно организовать пересылку любых файлов (в т.ч. архивов) в приложении клиент-сервер?
Re: пересылка файла клиент-сервер
От: danclax  
Дата: 13.08.05 22:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как правильно организовать пересылку любых файлов (в т.ч. архивов) в приложении клиент-сервер?


Пересылай поблочную передачу. Т.е. отсылай, к примеру, по 4 кб получателю. После приема блока получатель высылает один контрольный байт, после чего отправитель отсылает очередной блок. и так далее. Рекомендую использовать TCP, чистые АПИшные сокеты, и асинхронный способ передачи.
Re[2]: пересылка файла клиент-сервер
От: Аноним  
Дата: 13.08.05 22:33
Оценка:
Здравствуйте, danclax, Вы писали:

D>Пересылай поблочную передачу. Т.е. отсылай, к примеру, по 4 кб получателю. После приема блока получатель высылает один контрольный байт, после чего отправитель отсылает очередной блок. и так далее. Рекомендую использовать TCP, чистые АПИшные сокеты, и асинхронный способ передачи.


А каким образом открыть принятый файл или сохранить его? Пересылку/прием организую send/recv блоками. Как сообщить принимающей стороне тип пересылаемого файла, что б можно было создавать файл для записи указанного типа?
Re: пересылка файла клиент-сервер
От: mgoncharenko  
Дата: 13.08.05 23:16
Оценка:
> Как правильно организовать пересылку *любых* файлов (в т.ч. архивов) в
> приложении клиент-сервер?

Есть у тебя сокет. Читаешь из файла блоками по X килобайт и пишешь в сокет.
Собственно, всё...
При желании можешь ещё какие-нить заголовки передавать. В качестве
примера можешь взять протокол HTTP. Или FTP.
Posted via RSDN NNTP Server 1.9
Re[2]: указатель на память ресурса после LoadResource
От: pushkin_BSU  
Дата: 17.08.05 13:28
Оценка:
Здравствуйте, mgoncharenko, Вы писали:

>> Как правильно организовать пересылку *любых* файлов (в т.ч. архивов) в

>> приложении клиент-сервер?

Тут надо какой-нибудь простенький протокол придумать. Например, клиент шлет серверу запрос
на отсылку файла (4 байта — int код отсылки файла, например, 1000), сервер отвечает четырехбайтовым
int-ом тоже, что он не против принять файл. Тогда клиент шлет ему длину строки с именем файла, само имя
файла, длину строки с путем, куда файл поместить, сам путь. Также шлется строка с параметрами
открытия файла и т. д. Затем идет отправка самого файла кусками, но лучше это делать не по 4 Кб,
как было написано в предыдущем посте, а большими кусками (вообще-то это зависит от типа соединения, но
если по локалке, то не меньше 500 Кб, иначе медленно работать будет). После отсылки каждого куска
клиент должен получить с сервера 4 байта — int код подтверждения получения пакета. Причем, перед каждым
куском еще лучше слать размер этого пакета, а то последний пакет будет не 500 Кб, к примеру, а 233 Кб.
Re: пересылка файла клиент-сервер
От: butcher Россия http://bu7cher.blogspot.com
Дата: 18.08.05 10:12
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Как правильно организовать пересылку любых файлов (в т.ч. архивов) в приложении клиент-сервер?


См. TransmitFile

Нет ничего невозможного..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.