![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Существует статья: 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 клиента, затем пытаюсь подключиться, у меня это не получается ... Помогите кто чем может. |
|
#2
|
|||
|
|||
|
А если попробовать 127.0.0.1?
Ну и в OnConnect сервера вставь какое-нить логирование - вообще хоть что-то подсоединяется. Можно для начала попробовать подключиться к серверу через telnet - проверить сам сервер. |
|
#3
|
|||
|
|||
|
Цитата:
Цитата:
Цитата:
Вобщем присылаю исходник сервера и клиента, вес файла 394kb: http://ifolder.ru/11774893 Последний раз редактировалось DungeonLords, 23.04.2009 в 19:00. |
|
#4
|
|||
|
|||
|
telnet - эо специальная программка в винде. Когда писал свой почтовый сервис, тестировал именно с помощью ее. Благо почтовые протоколы достаточно простые.
Логирование - вывод какой-нить строчки текста в файл/мемо/и т.д. из соответсуующих событий. Ну и зачем такой большой файл? Убери из него бинарники - все-равно пересобирать для теста. А еще проще - можно выложить сразу сюда важные куски кода. Например, установка параметров клиента и открытие соединения и Установка параметров сервера и открытие порта на прослушивание. |
|
#5
|
|||
|
|||
|
Цитата:
Про большой файл. Разве? Мне кажется 394 это не так уж и много. Ну а .exe действительно надо было выкинуть, сглупил .P.S. Может всё же посмотришь код ?правка. Цитата:
Последний раз редактировалось DungeonLords, 23.04.2009 в 19:09. |
|
#6
|
|||
|
|||
|
На тебе простейший пример на 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. То, что они на одной форме - это не принципиально. Просто лень было несколько приложений городить. |