Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2008, 20:30   #11
SeЯgey
Пользователь
 
Регистрация: 03.04.2008
Сообщений: 50
Вопрос

Квэнди, подскажи как передовать файлы в обе стороны и от клиента к серверу и от сервера к клиенту очень нужно, срочно!!!

Заранее спасибо
SeЯgey вне форума Ответить с цитированием
Старый 13.05.2008, 21:46   #12
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

вы же сами себе ответили постом выше
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 29.08.2008, 15:25   #13
KossChe
 
Регистрация: 29.08.2008
Сообщений: 3
По умолчанию Как наоборот?

Уважаемый Квэнди!
Как быть все же таки, если связь в обратную сторону...Т.е. сервер должен прнимать файлы от разных клиентов...
Процедурка ведь должна поменяться...Как я читал, приложение серверной части содержит компоненту сервера и IdThreadMgrDefault1,
а в клиентскую часть входит только IdTCPClient1
Сорри, если совсем тупой вопрос
KossChe вне форума Ответить с цитированием
Старый 29.08.2008, 15:36   #14
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

В случая когда нужна двухсторонняя связь реализуется и клиент и сервер на каждой из сторон
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 29.08.2008, 16:06   #15
KossChe
 
Регистрация: 29.08.2008
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
В случая когда нужна двухсторонняя связь реализуется и клиент и сервер на каждой из сторон
Смотри, компонента IdTCPServer слушает порт и при обнаружении соединения должна принять файло от клиента... Т.е. связь нужна в сторону от клиента к серверу. А в приведенных процедурах сервер отдает данные....
Как мне организовать процедуру?
KossChe вне форума Ответить с цитированием
Старый 30.08.2008, 20:40   #16
Pedro
Форумчанин
 
Аватар для Pedro
 
Регистрация: 25.03.2007
Сообщений: 166
По умолчанию

И idTcpServer и idTCPClient имеют функции ReadStream и WriteStream => и Сервер и Клиент могут и отправлять и получать потоки.

СЕРВЕР(принимает картинку):

Код:
Var
FileName:string;
Potok:TMemoryStream;
Size:Integer;

...

procedure TForm2.FormCreate(Sender: TObject);
begin
 FileName:='C:\Reciev.bmp';
 Potok:=TMemoryStream.Create;
end;

procedure TForm2.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
  size:= AThread.Connection.ReadInteger(true);
  AThread.Connection.ReadStream(potok,size,false);
  potok.SaveToFile(FileName);
  Potok.Clear;
  ShowMessage('Принято');
end;
КЛИЕНТ(отправляет картинку):
Код:
Var
 
  f:Boolean;
  Potok:TMemoryStream;
  FileName:string;

...


procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Connect();
if IdTCPClient1.Connected=true then
begin
try
 Potok.LoadFromFile(FileName);
 IdTCPClient1.WriteInteger(Potok.Size,true);
 IdTCPClient1.WriteStream(potok,true,false,potok.Size);
 Potok.Clear;
 ShowMessage('Отправлено');
finally
f:=true;
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
potok:=TMemoryStream.Create;
FileName:='C:\Send.bmp';
end;
Наверное так, если нет, говорите, будем думать)))
Pedro вне форума Ответить с цитированием
Старый 09.10.2008, 09:06   #17
KossChe
 
Регистрация: 29.08.2008
Сообщений: 3
По умолчанию Снова idtcp

Pedro - респект! Код работает
Правда почему-то не отрабатывала инициализация потока по событию ФормКрит...
Коллеги, подскажите пож, какое различие в использовании функций работы с потоком от методов AThread.Connection.Socket.Send..? Мож я неправильно сформулировал, но у Квэнди вроде по-другому шла работа с обменом данных.
В методе Pedro нужна ли в серверной части компонента IdThreadMgrDefault1?
KossChe вне форума Ответить с цитированием
Старый 09.10.2008, 19:26   #18
Pedro
Форумчанин
 
Аватар для Pedro
 
Регистрация: 25.03.2007
Сообщений: 166
По умолчанию

Вот исходники клиента и сервера
ServClient.rar
Pedro вне форума Ответить с цитированием
Старый 30.01.2009, 17:33   #19
Gurt87
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 24
По умолчанию

Pedro, не мог бы ты привести обратный код (не клиент передает серверу файл, а сервер клиенту) А то чет не получается...
Gurt87 вне форума Ответить с цитированием
Старый 12.03.2010, 11:59   #20
crick
Новичок
Джуниор
 
Регистрация: 12.03.2010
Сообщений: 1
По умолчанию

Не могли бы выложить код исходника с возможностью отправки файлов от клиента к серверу и от сервера к клиенту?
буду очень благодарен)
crick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снова StringGrid zzzzz Компоненты Delphi 2 13.07.2008 01:41
Снова о массиве Constellation Общие вопросы Delphi 2 09.02.2008 20:42
И снова Chart SunKnight Общие вопросы Delphi 5 08.02.2008 11:58
и снова Mdi Баламут Общие вопросы Delphi 1 28.11.2006 07:03