Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отправлять и принимать файлы используя Winsock 
V
    Опции темы
seferot
  Дата 13.12.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 13.9.2008

Репутация: нет
Всего: нет



Здравствуйте! Подскажите пожалуйста, как отправлять и принимать файлы из сети используя только Winsock? 

У меня есть прога посылающая запросы серверу на выполнение определенных действий. Нужна модификация, например:
По запросу клиента сервер должен отправить файл клиенту, а клиент соответственно его принять.

Компоненты не подойдут, только Winsock... 
PM MAIL   Вверх
WaReZMEN
Дата 14.12.2008, 21:46 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



рекамендую смотреть в сторону Indy на Winsock замучаешся...
PM MAIL ICQ   Вверх
seferot
Дата 16.12.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 13.9.2008

Репутация: нет
Всего: нет



Моя прога работает без формы. Все основные функции написаны на WinAPI, посыл данных на сервер работает на чистом Winsock. Другие компоненты не пойдут...
PM MAIL   Вверх
WaReZMEN
Дата 18.12.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Тогда гугли...
PM MAIL ICQ   Вверх
SneG0K
Дата 18.12.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



WaReZMEN, сказали же, что надо на винсоке...

seferot, файл можно передавать, как массив string. 
Сделай процедуру, которая откроет файл и будет допустим по 8 символов (байт) в цикле отправлять... 
А лучше эти восемь символов бери в какие-то теги, с помощью которых другай программа сможет определить, что эти именно файл
PM WWW Skype   Вверх
seferot
  Дата 19.12.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 13.9.2008

Репутация: нет
Всего: нет



SneG0K, не уверен что такой способ оптимален, smile  потому что придется передавать файлы больших размеров. Если  есть пример, то покажи.
PM MAIL   Вверх
SneG0K
Дата 21.12.2008, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 2
Всего: 54



seferot,  а как тогда оптимален? Ты думаеш весь файл одним пакетом передается?

Передающая часть
Код

function sendFile(filePatch:string; sock:TSocket):boolean;
var
  f:text;
  str:array[0..255] of char;
begin
  assign(f, filepatch);
  reset(f);
  while not eof(f) do
  begin
    readln(f, str);
    if send(sock, str, length(str), 0) <= 0 then
    begin
      result := false;
      exit;
    end;
  end;
  closeFile(f);
  result := true;
end;

Принимающая часть
Код

procedure receveFile(filepatch:string; sock:TSocket);
var
  f:text;
  i:integer;
  buf:array[0..255] of char;
begin
  Assign(f, filepatch);
  Rewrite(f);
  repeat
    i := recv(sock, buf, length(buf), 0);
    writeln(f, buf);
  until i <= 0;
  CloseFile(f);
end;


PM WWW Skype   Вверх
seferot
Дата 23.12.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 13.9.2008

Репутация: нет
Всего: нет



Конечно же файлы передаются по кусочкам... Что касается твоего примера, то это то что мне надо. Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1043 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.