Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.04.2009, 21:53
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию Indy примитивный клиент и сервер

Существует статья: http://www.glscene.ru/content.php?article.24 . Там описано создание клиента и сервера в Delphi с помощью Indy. Впринципе делаю всё как там написано. В итоге создал два .exe; один клиент, другой сервер. Пытаюсь подключить клиент к серверу (оба приложения находятся на одной рабочей станции). Почему-то клиент не подключается ! Я думаю всё дело в том, что я неправильно указал IP сервера у клиента.

Из вышесказанного вытекает вопрос, как узнать IP машины? Сам по себе вопрос несложный. Я использовал для его решения это: http://www.delphisources.ru/pages/fa...et_own_ip.html . Функция, описанная там выводит мне IP. Но когда я вставляю его в свойство Host клиента, затем пытаюсь подключиться, у меня это не получается ... Помогите кто чем может.
__________________
Делаем'c разные игры. Искать на glscene.ru
Ответить с цитированием
  #2  
Старый 22.04.2009, 22:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А если попробовать 127.0.0.1?
Ну и в OnConnect сервера вставь какое-нить логирование - вообще хоть что-то подсоединяется. Можно для начала попробовать подключиться к серверу через telnet - проверить сам сервер.
Ответить с цитированием
  #3  
Старый 23.04.2009, 18:44
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Цитата:
Сообщение от lmikle
А если попробовать 127.0.0.1?
, то ничего не изменится.

Цитата:
Сообщение от lmikle
Ну и в OnConnect сервера вставь какое-нить логирование - вообще хоть что-то подсоединяется.
Что значит логирование?

Цитата:
Сообщение от lmikle
Можно для начала попробовать подключиться к серверу через telnet - проверить сам сервер.
Ну нет. Мне и так страшно смотреть на тысячу компонентов с префиксом Id.

Вобщем присылаю исходник сервера и клиента, вес файла 394kb: http://ifolder.ru/11774893
__________________
Делаем'c разные игры. Искать на glscene.ru

Последний раз редактировалось DungeonLords, 23.04.2009 в 19:00.
Ответить с цитированием
  #4  
Старый 23.04.2009, 19:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

telnet - эо специальная программка в винде. Когда писал свой почтовый сервис, тестировал именно с помощью ее. Благо почтовые протоколы достаточно простые.

Логирование - вывод какой-нить строчки текста в файл/мемо/и т.д. из соответсуующих событий.

Ну и зачем такой большой файл? Убери из него бинарники - все-равно пересобирать для теста. А еще проще - можно выложить сразу сюда важные куски кода. Например, установка параметров клиента и открытие соединения и Установка параметров сервера и открытие порта на прослушивание.
Ответить с цитированием
  #5  
Старый 23.04.2009, 19:05
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Цитата:
Сообщение от lmikle
Ну и зачем такой большой файл? Убери из него бинарники - все-равно пересобирать для теста. А еще проще - можно выложить сразу сюда важные куски кода. Например, установка параметров клиента и открытие соединения и Установка параметров сервера и открытие порта на прослушивание.
Ну там код по статье, поэтому я незнаю, что мне выкладывать ибо всё приведено к такому же виду, как в статье (см. ссылку выше).

Про большой файл. Разве? Мне кажется 394 это не так уж и много. Ну а .exe действительно надо было выкинуть, сглупил .

P.S. Может всё же посмотришь код ?

правка.
Цитата:
Сообщение от lmikle
Логирование - вывод какой-нить строчки текста в файл/мемо/и т.д. из соответсуующих событий.
Посмотри на статью или на мой код. Там как раз это есть!
__________________
Делаем'c разные игры. Искать на glscene.ru

Последний раз редактировалось DungeonLords, 23.04.2009 в 19:09.
Ответить с цитированием
  #6  
Старый 23.04.2009, 19:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

На тебе простейший пример на TIdTCPServer/Client

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    TCPServer: TIdTCPServer;
    TCPClient: TIdTCPClient;
    btStartServer: TButton;
    btConnect: TButton;
    edLog: TMemo;
    procedure btStartServerClick(Sender: TObject);
    procedure btConnectClick(Sender: TObject);
    procedure TCPServerExecute(AContext: TIdContext);
    procedure TCPServerConnect(AContext: TIdContext);
    procedure TCPServerDisconnect(AContext: TIdContext);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btStartServerClick(Sender: TObject);
begin
  TCPServer.Active := True;
end;

procedure TForm1.btConnectClick(Sender: TObject);
begin
  TCPClient.Connect;
  edLog.Lines.Add('Client: Connected.');
  TCPClient.Disconnect;
  edLog.Lines.Add('Client: Disconnected.');
end;

procedure TForm1.TCPServerExecute(AContext: TIdContext);
begin
  edLog.Lines.Add('Server: client executed.');
end;

procedure TForm1.TCPServerConnect(AContext: TIdContext);
begin
  edLog.Lines.Add('Server: client connected.');
end;

procedure TForm1.TCPServerDisconnect(AContext: TIdContext);
begin
  edLog.Lines.Add('Server: client disconnected.');
end;

end.

В обоих компонентах в настройке указан порт 8080, а в клиенте еще и Host = 127.0.0.1. То, что они на одной форме - это не принципиально. Просто лень было несколько приложений городить.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:48.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter