Вот простейший пример(не помню для каких целей набрасывал, но работает):
Сервер
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls, StrUtils;
type TForm1 = class(TForm) IdTCPServer: TIdTCPServer; Memo1: TMemo; btnState: TButton; procedure btnStateClick(Sender: TObject); procedure IdTCPServerExecute(AThread: TIdPeerThread); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnStateClick(Sender: TObject); begin idTCPServer.Active := not idTCPServer.Active; btnState.Caption := IfThen(idTCPServer.Active, 'Stop', 'Start'); end;
procedure TForm1.IdTCPServerExecute(AThread: TIdPeerThread); begin Memo1.Lines.Add(AThread.Connection.ReadLn); end;
end.
|
Клиент
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, StdCtrls, StrUtils;
type TForm1 = class(TForm) IdTCPClient: TIdTCPClient; btnState: TButton; edtSend: TEdit; btnSend: TButton; procedure btnStateClick(Sender: TObject); procedure btnSendClick(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnStateClick(Sender: TObject); begin if not idTCPClient.Connected then idTCPClient.Connect else idTCPClient.Disconnect;
btnState.Caption := IfThen(idTCPClient.Connected, 'Disconnect', 'Connect'); end;
procedure TForm1.btnSendClick(Sender: TObject); begin if idTCPClient.Connected then idTCPClient.WriteLn(edtSend.Text); end;
| Добавлено @ 04:57 Разумеется должны быть прописаны такие свойства как host(localhost) и port(допустим 5000) у клиента и DefaultPort(5000) у сервера |