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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2010, 10:26   #1
&&blad&&
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 23
По умолчанию Передача файлов по сети с клиента на сервер

Хочу передать фаил по сети с клиента на сервер используя serverSocet и klientSocet. Во время передачи файлов программа выдаёт ошибку: Asynchronous socket error 10061, что я делаю неверно?
Код:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
var y:TFileStream;
  name: String;//Путь к файлу
begin
     y.Create(Name,fmOpenRead);
     y.Position:=0;
     ClientSocket1.Socket.SendStream(y);
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var Len:Integer;
    bufarray: array of byte;
    strStream: TMemoryStream;
    Name: String;//Путь к месту сохранения файла
begin
  len:=ServerSocket1.Socket.ReceiveLength();
  SetLength(bufarray,Len+1);
  strStream:=TmemoryStream.Create;
  strStream.Position:=0;
  ServerSocket1.Socket.ReceiveBuf(bufarray,len);
  strStream.WriteBuffer(bufarray,Len);
  strStream.Position:=0;
  strStream.SaveToFile(Name);
  strStream.Destroy;
  SetLength(bufarray,0);
end;

Последний раз редактировалось mihali4; 28.11.2010 в 16:43.
&&blad&& вне форума Ответить с цитированием
Старый 02.10.2010, 17:46   #2
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Вы работаете с асинхронными сокетами. Для них нужно использовать соответствующие события на чтение и на запись, просто последовательно - не выйдет/ Для последровательного чтения/записи можно использовать вполне удобную библиотеку indy (TIdTCPClient / TIdTCPServer), что будет куда проще.
Bad-XxX вне форума Ответить с цитированием
Старый 03.10.2010, 13:45   #3
&&blad&&
Пользователь
 
Регистрация: 24.04.2010
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Bad-XxX Посмотреть сообщение
Для них нужно использовать соответствующие события на чтение и на запись, просто последовательно - не выйдет
Bad-XxX Спасибо за ответ.
Немного поправил код и ошибка исчезла.
Но не могу понять какие тараметры надо передать в функцию отправки файлов: ClientSocket.OnWrite(?,?);
&&blad&& вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# передача файлов в сети TaTT DoGG Помощь студентам 20 02.04.2017 15:53
С# передача файлов по сети bondik Общие вопросы .NET 4 04.03.2010 10:49
Передача файлов по сети SL1CK Работа с сетью в Delphi 3 05.12.2009 00:08
Передача файлов по сети Sparky Общие вопросы Delphi 5 31.10.2009 19:34