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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2019, 16:32   #1
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию Сервер клиент передача данных

Как предать данные клиенту.

Необходимо приконектица к серверу и предать массив как это сделать?
linda88 вне форума Ответить с цитированием
Старый 04.04.2019, 16:35   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Узнать, что за протокол используется и взять компонент, например из Indy.
p51x вне форума Ответить с цитированием
Старый 05.04.2019, 09:45   #3
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

через базу данных по ip и порту, например технология ADO, или post и get запросы если база не доступна напрямую.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 09.04.2019, 14:16   #4
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию

можете вот с этим
http://www.cyberforum.ru/delphi-fire...ad1163441.html
помочь
прописываю 127.0.0.1 и 127.0.0.1:8040 пишит ошибку Areqite

Сервер

Код:
unit Znaika1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,
  FMX.Grid.Style, Data.Win.ADODB, Data.DB, FMX.Controls.Presentation,
  FMX.ScrollBox, FMX.Grid, FMX.Ani, Fmx.Bind.Grid, System.Bindings.Outputs,
  Fmx.Bind.Editors, Data.Bind.Controls, Data.Bind.EngExt, Fmx.Bind.DBEngExt,
  Data.Bind.Components, FMX.Layouts, Fmx.Bind.Navigator, Data.Bind.Grid,
  Data.Bind.DBScope, FMX.Edit, FMX.StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, IdCustomTCPServer, IdTCPServer,
  IdContext, FMX.Memo;

type
  Tzaika = class(TForm)
    ADOConnection1: TADOConnection;
    Add: TButton;
    save: TButton;
    ADODataSet1: TADODataSet;
    StringGrid1: TStringGrid;
    BindSourceDB1: TBindSourceDB;
    LinkGridToDataSourceBindSourceDB1: TLinkGridToDataSource;
    BindingsList1: TBindingsList;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    LinkControlToFieldДатаактивации: TLinkControlToField;
    LinkControlToFieldДатапродажи: TLinkControlToField;
    LinkControlToFieldКод: TLinkControlToField;
    LinkControlToFieldПоле1: TLinkControlToField;
    LinkControlToFieldПредмет: TLinkControlToField;
    LinkControlToFieldТелефон: TLinkControlToField;
    LinkControlToFieldШкола: TLinkControlToField;
    IdHTTP1: TIdHTTP;
    Active: TButton;
    IdTCPServer1: TIdTCPServer;
    Memo1: TMemo;
    procedure AddClick(Sender: TObject);
    procedure saveClick(Sender: TObject);
    procedure ActiveClick(Sender: TObject);
    procedure IdTCPServer1Execute(AContext: TIdContext);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  zaika: Tzaika;
 a: array of string;
implementation

{$R *.fmx}

procedure Tzaika.ActiveClick(Sender: TObject);
begin

 idTcpServer1.DefaultPort:=8480; //Устанавливаем порт, такой же, как и у клиента
 idTcpServer1.Active:=true; //Включаем сервер

end;

procedure Tzaika.AddClick(Sender: TObject);
begin
  zaika.ADODataSet1.Insert
end;

procedure Tzaika.IdTCPServer1Execute(AContext: TIdContext);
var
S:string;
begin
s:= AContext.Connection.Socket.ReadLn; //Записываем в переменную "s" сообщение, присланное клиентом.
Memo1.Lines.add('['+Timetostr(time)+'] '+'['+AContext.Connection.Socket.Binding.PeerIP+'] '+ s); //Добавляем в Memo время, ip-adress клиента и сообщение

end;

procedure Tzaika.saveClick(Sender: TObject);
begin
  zaika.ADODataSet1.Post
end;

end.
Клиент:
Код:
unit client1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,
  FMX.StdCtrls, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;

type
  Tclient = class(TForm)
    IdTCPClient1: TIdTCPClient;
    Memo1: TMemo;
    conect: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure conectClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  client: Tclient;

implementation

{$R *.fmx}

procedure Tclient.Button1Click(Sender: TObject);
begin
 if idTcpClient1.Connected  then //Проверяем, есть ли подключение к серверу.
  begin
   idTcpClient1.Socket.WriteLn(edit2.text); //Посылаем текст, введенный в edit2, серверу.
   memo1.Lines.Add('['+Timetostr(time)+'] '+'Команда "'+ edit2.Text + '" послана серверу!'); //Добавляем запись в Memo клиента
  end
else memo1.Lines.Add('['+Timetostr(time)+'] '+'Вы не подключены к серверу!'); //Добавляем запись в Memo клиента

end;

procedure Tclient.conectClick(Sender: TObject);
begin
 idTcpClient1.Host:=edit1.text; //Вводим внутренний ip-adress сервера
 idTcpClient1.Port:=8480; //Порт клиента и сервера должен быть одним и тем же.
 idTcpClient1.Connect(); //Подключаемся к серверу
 if idtcpclient1.Connected=true then idTcpClient1.Socket.WriteLn('Client is connected'); //Если успешно подключились к серверу, то отправляем сообщение серверу о подключении.

end;

end.
linda88 вне форума Ответить с цитированием
Старый 09.04.2019, 14:22   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Начнем с простого: на локалхосте сервер запущен? что у него в логах по коннектам?
p51x вне форума Ответить с цитированием
Старый 09.04.2019, 14:32   #6
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию

на одной машине пока запускаю оба файла ни сервер ни с клиент ничего у себя в логах не пишут
linda88 вне форума Ответить с цитированием
Старый 09.04.2019, 15:00   #7
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию

Все вышло подскажите возможно будет по этому конекту предать таблицу
linda88 вне форума Ответить с цитированием
Старый 09.04.2019, 15:21   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

По любому конекту можно передать таблицу и много всего другого. Придумывайте протокол и передавайте.
p51x вне форума Ответить с цитированием
Старый 09.04.2019, 19:07   #9
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию

Ясно спасибо, а можете помочь придумать как предать?
linda88 вне форума Ответить с цитированием
Старый 09.04.2019, 19:49   #10
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Вот тема "обмен сообщениями", в ней есть пример своего протокола обмена данными по сети, по изучайте, возможно кое что для себя найдете. https://www.programmersforum.ru/show...=186538&page=4

Последний раз редактировалось Aliens_wolfs; 09.04.2019 в 19:56.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных сервер-клиент elf01 Общие вопросы .NET 3 11.10.2016 17:11
Передача файла сервер клиент I_am_ Win Api 1 10.12.2014 16:56
Клиент - сервер передача файлов vovik93 Общие вопросы по Java, Java SE, Kotlin 0 17.07.2012 01:06
Передача файла клиент-сервер Loveb C/C++ Сетевое программирование 2 27.05.2011 10:10