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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2019, 06:50   #1
Vansha
 
Регистрация: 18.01.2018
Сообщений: 6
По умолчанию Оправка сообщений по сети с 4 компьютеров на 1

Здравствуйте.
Помогите с программой или советом от чего оттолкнутся.
Нужна программа отправки сообщений с 4 разных компьютеров на 1, но что б сообщения выводились с 1 компьютера допустим RichEdit1, с 2 компьютера RichEdit2, с 3 компьютера RichEdit3, с 4 компьютера RichEdit4. Все эти сообщения с компьютеров выводились на 5 компьютер.
Возможна такая задумка или нет?
Vansha вне форума Ответить с цитированием
Старый 16.05.2019, 08:12   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Элементарно. Пишите простейший сервер, который принимает сообщение и клиент, которые его посылает. А на серевере просто выводите в разные едиты по клиентам.
p51x на форуме Ответить с цитированием
Старый 05.06.2019, 09:24   #3
Vansha
 
Регистрация: 18.01.2018
Сообщений: 6
По умолчанию

Указываем путь файла в Edit1 который нужно отправить
В Edit2 указываем путь куда файл нужно разместить.
Может кому будет полезен.

Код:
procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
    FPipeRead: THandle;
    FPipeWrite: THandle;
    FDataLen: DWORD;
    FDataRead: DWORD;
    FFileStream: TFileStream;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  CreatePipe(FPipeRead, FPipeWrite, nil, $8000);
  FDataLen:=0;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  CloseHandle(FPipeWrite);
  CloseHandle(FPipeRead);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientSocket1.Open;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add('успешно');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  FileStream: TFileStream;
  len: DWORD;
begin
  FileStream:=TFileStream.Create(Edit1.Text, fmOpenRead);
  try
    len:=FileStream.Size;
    ClientSocket1.Socket.SendBuf(len, SizeOf(len));
    ClientSocket1.Socket.SendStream(FileStream);
  except
    FileStream.Free;
  end;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  Len: Integer;
  Buffer: PChar;
  dummy: Cardinal;
begin
  Len:=Socket.ReceiveLength;
  Buffer:=GetMemory(Len);
  try
    Len:=Socket.ReceiveBuf(Buffer^, Len);
    WriteFile(FPipeWrite, Buffer^, Len, dummy, nil);
  finally
    FreeMemory(Buffer);
  end;
  while True do
  begin
    Len:=GetFileSize(FPipeRead, nil);
    if Len=0 then Break;
    if FDataLen=0 then
    begin
      if Len<SizeOf(DWORD) then Break;
      ReadFile(FPipeRead, FDataLen, SizeOf(DWORD), dummy, nil);
      FDataRead:=0;
      FFileStream:=TFileStream.Create(Edit2.Text, fmCreate);
    end else
    begin
      Buffer:=GetMemory(Len);
      try
        ReadFile(FPipeRead, Buffer^, Len, dummy, nil);
        FFileStream.Write(Buffer^, Len);
        Inc(FDataRead, Len);
        if FDataRead=FDataLen then
        begin
          FFileStream.Free;
          FDataLen:=0;
          Memo1.Lines.Add('отправлено');
        end;
      finally
        FreeMemory(Buffer);
      end;
    end;
  end;
end;

end.
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Alex11223; 05.06.2019 в 09:27.
Vansha вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение компьютеров в сети MrChromeArh C# (си шарп) 0 15.06.2012 22:38
Поиск локальных компьютеров в сети Federal Работа с сетью в Delphi 0 29.01.2012 16:08
Мониторинг компьютеров в локальной сети maLoy*508 Операционные системы общие вопросы 3 02.12.2010 15:43
Включение компьютеров по сети vlad.md Работа с сетью в Delphi 17 05.07.2010 15:47
мониторинг компьютеров в сети Riska Работа с сетью в Delphi 5 23.05.2010 20:41