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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2008, 13:43   #1
FAiver
Пользователь
 
Аватар для FAiver
 
Регистрация: 13.07.2007
Сообщений: 60
Вопрос Многопоточный сервер

Всем привет!
Мне необходимо написать прогу многопоточный сервер и клиент к нему, по запросу клиента сервер должен передовать на клиент устройства(т.е. диски А С D) и уметь показывать файлы и папки на дисках.
Вопрос на чём лучше делать? я так понимаю на Indy но у меня мало инфы на эту тему подскажите где можно почитать. ну или напишите пример многопаточного сервера... с клиентом я думаю разберусь.
За раннее спасибо!
FAiver вне форума Ответить с цитированием
Старый 22.03.2008, 14:34   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
у меня мало инфы на эту тему подскажите где можно почитать.
За раннее спасибо!
Вся нужная литература, как неоднократно указывалось, находится на сайте клуба форума (ссылка в низу каждой страницы).
Ну, если "за раннее спасибо", то за позднее - пожалуйста...
mihali4 вне форума Ответить с цитированием
Старый 23.03.2008, 08:34   #3
FAiver
Пользователь
 
Аватар для FAiver
 
Регистрация: 13.07.2007
Сообщений: 60
По умолчанию

Если ктонибуть в этом понимает помогите написать это приложение т.к. у меня это курсовик который я должен защищять в следующюю пятницу! а до пятницы у меня ещё каждый день идут экзамены
вот немного накидал код... но походу с ошибками... помогите их исправить что я не так делаю? вот код
сервер:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    ComboBox1: TComboBox;
    IdTCPServer1: TIdTCPServer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure ListFileDir(Path: string; FileList: TStrings);
 var
   SR: TSearchRec;
 begin
   if FindFirst(Path +'*.*', faAnyFile, SR) = 0 then
   begin
     repeat
       if (SR.Attr <> faDirectory) then
       begin
         FileList.Add(SR.Name);
       end;
     until FindNext(SR) <> 0;
     FindClose(SR);
   end;
 end;


procedure TForm1.Button1Click(Sender: TObject);   
var   
ld : DWORD;   
i : integer;   
begin   
ld := GetLogicalDrives;   
for i := 0 to 25 do begin
if (ld and (1 shl i)) <> 0 then   
ComboBox1.Items.Add(Char(Ord('A') + i) + ':\');
end;
end;   

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
ListFileDir(ComboBox1.Text, Memo1.Lines.Create);
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var lcmd:string;
begin
with AThread.Connection do
begin
   lcmd:=Trim(Readln);
   if SameText(LCmd, 'QUIT') then
begin
WriteLn('200 Good bye');
Disconnect;
end
else if SameText(LCmd, 'DATE') then
begin
WriteLn('200 ' + DateToStr(Date));
end
else
begin
WriteLn('400 Unknown command');
end;
end;
end;

end.

Клиент:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
while IdTCPClient1.Connected do
begin
    IdTCPClient1.Host:=Edit1.Text;
    IdTCPClient1.Port:=81;
    IdTCPClient1.Connect(100);
    try
    IdTCPClient1.Write('Data');
    IdTCPClient1.ReadLn(s);
    Label1.Caption:=s;
    finally;
    IdTCPClient1.Disconnect;
    end;
end;
end;

end.
но что то он не работает.... ПОМАГИТЕ ПЛИЗ!!!

Последний раз редактировалось FAiver; 23.03.2008 в 09:26.
FAiver вне форума Ответить с цитированием
Старый 23.03.2008, 11:21   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

А что не работает кроме отсутствия в сервере обработки для комманды которую вы отправляете ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 23.03.2008, 16:17   #5
FAiver
Пользователь
 
Аватар для FAiver
 
Регистрация: 13.07.2007
Сообщений: 60
По умолчанию

оно не работает!!!
покажите мне пример сервера и клиента к нему что бы клиент конектился к серверу отправлял туду строчку а сервер в ответ отправлял другую строчку.
FAiver вне форума Ответить с цитированием
Старый 23.03.2008, 18:12   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

"оно не работает!!!"
под этим что подразумевается ?
так и будем из вас по слову вытягивать ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 23.03.2008, 20:00   #7
FAiver
Пользователь
 
Аватар для FAiver
 
Регистрация: 13.07.2007
Сообщений: 60
По умолчанию

совсем не работает... пробовал в клиенте написать в событии onconnect Showmessage т.е. чты бы викидывалось сообщение когда клиент конектится но ничево не происходит... т.е. получается что клиент не конектится... или сервер не работает... непойму в чём именно проблема? порт на клиенте и на сервере поставил 81.
Если можете то покажите мне на примере отправку данных на сервер и ответ сервера клиенту. ПОЖАЛУЙСТА!!!
FAiver вне форума Ответить с цитированием
Старый 23.03.2008, 20:24   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Скидывайте ваш проект, подправлю, отправлю.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 23.03.2008, 21:46   #9
FAiver
Пользователь
 
Аватар для FAiver
 
Регистрация: 13.07.2007
Сообщений: 60
По умолчанию

зараннее спасибо!
скачать проэкт можно от сюда http://mob-mag.fatal.ru/indy_cs.rar
FAiver вне форума Ответить с цитированием
Старый 23.03.2008, 22:30   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

У вас сервер собственно ничего не биндит, что же в ыхотели ?
свойство bindings отвечает за то какой локальный IP и какой порт будет "слушать" сервер.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Web сервер Briz Операционные системы общие вопросы 3 13.11.2007 10:10
многопоточный сервер мандарин Работа с сетью в Delphi 6 24.04.2007 07:22
Многопоточный Ping Квэнди Работа с сетью в Delphi 0 18.12.2006 15:01