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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 20:40   #1
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию ClientSocket и ServerSocket

Всем привет!!! В общем ситуация в том , что отправляю файлы через ClientSocket , а ServerSocket их ловит. Текстовыми командами обмениваются легко, но как дело доходит до отправки потока, то здесь и глюк. Либо Client поток не отправляет либо Server не ловит.
Вот код Client- а
Код:
procedure TForm3.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
var
   A: TStream;
begin
     Socket.SendText('filedowload' + IntToStr(fs.Size) + #0);
end;
это на коннект, а вот на READ
Код:
procedure TForm3.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
    mes: string;
begin
    mes := Socket.ReceiveText;
    if mes = 'ReadyDowload' then
    begin
        ShowMessage ('Клиент готов принять файл!');
        Socket.SendStream(fs);
    end
    else if mes = 'NoDowload' then
         begin
             ShowMessage('Клиент отказался принимать файл!');
             ClientSocket1.Active := false;
         end;
end;
Вот код Server - а
Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
    s, s1: string;
    fs: TFileStream;
    fname: string;
    DataSize: longint;
    i: integer;
begin
    s := Socket.ReceiveText;
    if Form1.Reciving = true then
    begin
         s := Socket.ReceiveText;
         fs.Write(s[1], Length(s));
         if fs.Size = DataSize then
         begin
            ShowMessage('Файл Принят ' + fname);
            fs.Free;
         end;
    end;
    i:= 0;
    ShowMessage(s);
    if copy(s, 1, 11)='filedowload' then
    //if s ='filedowload' then
    begin
        Form4.ShowModal;
        Socket.SendText('Ready');
        if ssss = 'yes' then
        begin
            Socket.SendText('ReadyDowload');
            if SaveDialog1.Execute then
               fname := SaveDialog1.FileName;
            fs := TFileStream.Create(fname, fmCreate);
            DataSize := StrToInt(copy(s, 12, Pos(#0, s) - 12));
            {s := Socket.ReceiveText;
            fs.Write(s[1], Length(s));}
            Form1.Reciving := true;
        end
        else
        begin
            Socket.SendText('NoDowload');
            exit;
            fs.Free;
        end;
    end
    else
    begin
        Socket.SendText('Не считывается команда!!!');
      end;
end;
Всем заранее спасибо!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.03.2010, 01:17   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Кто нибудь
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ClientSocket и ServerSocket KoBRaAndrey Работа с сетью в Delphi 4 08.01.2010 19:21
ServerSocket и ClientSocket Sensizu Работа с сетью в Delphi 5 30.12.2009 00:09
ClientSocket и ServerSocket Blood o men Работа с сетью в Delphi 2 25.11.2009 11:36
Serversocket,clientsocket prizrak1390 Работа с сетью в Delphi 10 21.04.2009 16:04
Events в ServerSocket и ClientSocket LiFeStyle Работа с сетью в Delphi 3 22.11.2007 22:26