Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/23: Рейтинг темы: голосов - 23, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161

Время сервера

27.11.2009, 15:10. Показов 4690. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто-нибудь пробовал программно записывать время с сервера???
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.11.2009, 15:10
Ответы с готовыми решениями:

Время и дата. Время жизни программы
Сделал вывод даты в Edit, но столкнулся с проблемой, время не "идёт". AnsiString Days = {"Понедельник",...

Взять системные время и дату sql сервера и при внесении инфы в таблицу вставлять в заданное поле
Ребят, кто сможет подсказать... На Oracle написана база. на С клиент-серверное приложение. Сервер коннектится к БД. задача: взять...

Время сервера и время записи в файл
Всем привет! Мужики, помогите решить проблему. Есть сайт. При определенных событиях на сайте, нужно писать лог в файл. Время для...

32
 Аватар для VorteX
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
27.11.2009, 15:31
Всмысле? Можно чуть конкретней. Сокеты? Какое время?
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
27.11.2009, 15:40  [ТС]
Lord_Voodoo вот в теме похожей писал:

я делаю это так (c помощью индикомпонентов):
клиент:
C++
1
MainForm->Client->TalkServer("INFO†SYNC†", Block);
сервер:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Обработчик запросов клиента
void __fastcall TTCPSrv::Execute(TIdPeerThread *AThread)
{
  TStringList* Block = new TStringList();
  AnsiString Answer = "";
  AnsiString Query = "";
  try{
    Query = AThread->Connection->ReadLn();
  }catch(...){
    AThread->Connection->Disconnect();
    goto Exit;
  }
  Block->Clear();
  AnalizeAnswer(Query, Block);
  if(Block->Strings[0] == "INFO"){ // Информационные запросы
    if(Block->Strings[1] == "SYNC"){  // Запрос на синхронизацию даты и времени
      ShortDateFormat = "dd/mm/yyyy";
      ShortTimeFormat = "hh:mm";
      AnsiString Time = TimeToStr(Now());
      Time = PadL(Time.SubString(1, Time.LastDelimiter(":") - 1), 5);
      Answer = "ANSWER†" + DateToStr(Now()) + "†" + Time + "†";
    }
    if(Block->Strings[1] == "PARAM"){  // Запрос по настройкам БД
      Answer = "ANSWER†";
      for(int i = 0; i < MainForm->Param->Count; i++)
        Answer += MainForm->Param->Strings[i] + "†";
    }
  }
  AThread->Connection->WriteLn(Answer);
Exit:
А какие именно Indy компоненты используются при этом? Что то наподобие Indy Client и Indy Server?

Добавлено через 1 минуту
Цитата Сообщение от Falen Посмотреть сообщение
Всмысле? Можно чуть конкретней. Сокеты? Какое время?
Falen, идея такая - есть сервер, нужно взять оттуда время системное и записать его в файл к себе на комп.
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
29.11.2009, 03:35  [ТС]
Похоже задача из трудных...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
29.11.2009, 10:38
4aynik, ничего сложного... пример клиента:
C++
1
2
3
4
5
6
7
8
9
10
11
typedef struct tcpclient{
  TIdTCPClient* TCPClient;
  tcpclient(AnsiString host, int port){
    TCPClient = new TIdTCPClient(NULL);
    TCPClient->Host = host;
    TCPClient->Port = port;
  }
  ~tcpclient(){
    if (TCPClient!=NULL) delete TCPClient;
  }
}TTcpClient;
пример сервера:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
typedef struct tcpserver{
   TTCPSrv* TCPServer;
   tcpserver(int srv_port, AnsiString HostIp, AnsiString UHost, AnsiString PHost){
     TCPServer = new TTCPSrv(NULL, HostIp, UHost, PHost);
     TCPServer->Active = false;
     TCPServer->DefaultPort = srv_port;
     TCPServer->Bindings->DefaultPort = srv_port;
   }
   ~tcpserver(){
     if(TCPServer != NULL){
       delete TCPServer;
     }
   }
  }TTcpServer;
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
29.11.2009, 23:00  [ТС]
Lord_Voodoo, это надо в проект добавить 2 компонента - IndyClient и IndyServer (они по другому на самом деле немного называются, щас просто нету возможности посомтреть)???
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
30.11.2009, 09:15
у меня это вообще два проекта: клиент ( класс TIdTCPClient) и сервер (классTTCPSrv)...
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
30.11.2009, 09:34  [ТС]
Lord_Voodoo, код для клиента в какое событие добавлять?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
30.11.2009, 09:50
4aynik, да хоть на клик кнопки
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
30.11.2009, 10:20  [ТС]
Так, значит добавил компонент IdTCPClient и кнопку. На клике кнопки добавил это:

C++
1
2
3
4
5
6
7
8
9
10
11
typedef struct tcpclient{
  TIdTCPClient* TCPClient;
  tcpclient(AnsiString host, int port){
    TCPClient = new TIdTCPClient(NULL);
    TCPClient->Host = host;
    TCPClient->Port = port;
  }
  ~tcpclient(){
    if (TCPClient!=NULL) delete TCPClient;
  }
}TTcpClient;
Для клиента это всё? Теперь надо сделать проект сервера?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
30.11.2009, 10:36
4aynik, это на кнопку добавлять не надо... на кнопку добавьте стрку из поста №3...
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
30.11.2009, 10:54  [ТС]
Выдаёт ошибки:
1) Client is not a member of TForm
2) Block не может определить что такое...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
30.11.2009, 11:01
4aynik,ну так объяви Client в форме и TStringList* Block
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
30.11.2009, 13:56  [ТС]
Теперь ругается на то, что TalkServer не компонент IdTCPClient...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
30.11.2009, 14:35
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class TTcpClient{
  private:
  TIdTCPClient* TCPClient;
  public:
  TTcpClient(AnsiString host, int port){
    TCPClient = new TIdTCPClient(NULL);
    TCPClient->Host = host;
    TCPClient->Port = port;
  }
  ~TTcpClient(){
    if (TCPClient!=NULL) delete TCPClient;
  }
  int __fastcall TalkServer(AnsiString Cmd, TStrings* Answer)
  {
    int err = 0;
    try{
      TCPClient->Connect();
      TCPClient->WriteLn(Cmd);
      AnsiString AnswerBlock = TCPClient->ReadLn();
      Answer->Clear();
      AnalizeAnswer(AnswerBlock, (TStringList*)Answer);
      if(Answer->Strings[0] == "ERROR"){
        err = 3;
      }
      TCPClient->Disconnect();
    }catch(Exception &e){
      TCPClient->Disconnect();
      err = 3;
    }
    return err;
  }
};
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
01.12.2009, 13:50  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
class TTcpClient{
  private:
  TIdTCPClient* TCPClient;
  public:
  TTcpClient(AnsiString host, int port){
    TCPClient = new TIdTCPClient(NULL);
    TCPClient->Host = host;
    TCPClient->Port = port;
  }
  ~TTcpClient(){
    if (TCPClient!=NULL) delete TCPClient;
  }
Зачем вот тут ~TTcpClient(){ открывающая скобка?

Ошибки выдаёт...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
01.12.2009, 13:58
4aynik, одной закрывающей кавычки не хватае
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
01.12.2009, 14:27  [ТС]
Вот код файла Unit1.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TStringList* Block;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
class TTcpClient{
  private:
  TIdTCPClient* TCPClient;
  public:
  TTcpClient(AnsiString host, int port){
    TCPClient = new TIdTCPClient(NULL);
    TCPClient->Host = host;
    TCPClient->Port = port;
  }
  ~TTcpClient(){
    if (TCPClient!=NULL) delete TCPClient;
  }
  }
  int __fastcall TalkServer(AnsiString Cmd, TStrings* Answer)
  {
    int err = 0;
    try{
      TCPClient->Connect();
      TCPClient->WriteLn(Cmd);
      AnsiString AnswerBlock = TCPClient->ReadLn();
      Answer->Clear();
      AnalizeAnswer(AnswerBlock, (TStringList*)Answer);
      if(Answer->Strings[0] == "ERROR"){
        err = 3;
      }
      TCPClient->Disconnect();
    }catch(Exception &e){
      TCPClient->Disconnect();
      err = 3;
    }
    return err;
  }
};
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Client->TalkServer("INFO†SYNC†", Block);
}
//---------------------------------------------------------------------------

Кучу ошибок выдаёт:
[C++ Error] Unit1.cpp(29): E2176 Too many types in declaration
[C++ Error] Unit1.cpp(30): E2111 Type 'TTcpClient' may not be defined here
[C++ Error] Unit1.cpp(30): E2141 Declaration syntax error
[C++ Error] Unit1.cpp(48): E2139 Declaration missing ;
[C++ Error] Unit1.cpp(48): E2190 Unexpected }
[C++ Error] Unit1.cpp(49): E2190 Unexpected }
[C++ Error] Unit1.cpp(55): E2316 'Client' is not a member of 'TForm1'


Пока голова кругом, логику понять не могу...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
01.12.2009, 14:36
4aynik, уважаемый, ну кто же объявляет класс внутри функции??? даже если бы билдер это позволил, класс ваш был бы виден не дальше этой функции, а вам надо, чтобы область видимости класса была как минимум на класс формы
0
0 / 0 / 0
Регистрация: 17.08.2009
Сообщений: 161
01.12.2009, 14:46  [ТС]
Так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TStringList* Block;
class TTcpClient{
  private:
  TIdTCPClient* TCPClient;
  public:
  TTcpClient(AnsiString host, int port){
    TCPClient = new TIdTCPClient(NULL);
    TCPClient->Host = host;
    TCPClient->Port = port;
  }
  ~TTcpClient(){
    if (TCPClient!=NULL) delete TCPClient;
  }
  }
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   int __fastcall TalkServer(AnsiString Cmd, TStrings* Answer)
  {
    int err = 0;
    try{
      TCPClient->Connect();
      TCPClient->WriteLn(Cmd);
      AnsiString AnswerBlock = TCPClient->ReadLn();
      Answer->Clear();
      AnalizeAnswer(AnswerBlock, (TStringList*)Answer);
      if(Answer->Strings[0] == "ERROR"){
        err = 3;
      }
      TCPClient->Disconnect();
    }catch(Exception &e){
      TCPClient->Disconnect();
      err = 3;
    }
    return err;
  }
};
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Client->TalkServer("INFO†SYNC†", Block);
}
//---------------------------------------------------------------------------
Добавлено через 1 минуту
Это в файл Unit1.h наверное класс надо записать?

Добавлено через 1 минуту
С классами ни разу не имел дело...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.12.2009, 14:46
Помогаю со студенческими работами здесь

Время сервера
Как узнать локальное время сервера, зная IP-адрес этого сервера? Добавлено через 1 час 17 минут Уточнение: Сервер (компьютер)...

Время сервера
Подскажите как узнать через JS скрипт или передать JSy время сервера ? К примеру сервер работает по Гринвичу то нужно прибавить +4 чтобы...

Время с сервера
Как можно отобразить время с центрального пк т.е., сервера, если приложение запускается на другом пк?

Вернуть время с сервера
Доброго времени суток! подскажите пожалуйста нубарику как получить время из интернета средствами vbs? нашел 1 вариант но отрабатывает не...

Текущее время сервера
При подключении клиента должно выводиться время сервера. Но нет...не вижу в чем проблема. Помогите Сервер: package time; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru