delphi使用IdTCPServer、TIdTCPClient收发消息

字体大小: 中小 标准 ->行高大小: 标准

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    IdTCPClient1: TIdTCPClient;
    IdTCPServer1: TIdTCPServer;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
    procedure IdTCPClient1Connected(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); //连接按钮
begin
   IdTCPClient1.Host:='192.168.0.200';
   IdTCPClient1.Port:=1239;
   IdTCPClient1.Connect;
end;

procedure TForm1.Button2Click(Sender: TObject); //发送按钮
var
   sm:TStringStream;
   msize:Integer;
begin
   sm:=TStringStream.Create('大家好');
   msize:=sm.Size;
   Memo1.Lines.Add('发送时流大小为:'+inttostr(msize));
   IdTCPClient1.WriteInteger(msize);
   IdTCPClient1.WriteStream(sm);
   sm.Free;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
   s:string;
   sm:TStringStream;
   msize:integer;
begin
   sm:=TStringStream.Create('');
   msize:=AThread.Connection.ReadInteger();
   Memo1.Lines.Add('接收到的大小为:'+inttostr(msize));
   AThread.Connection.ReadStream(sm,msize);
   Memo1.Lines.Add(sm.DataString);
   sm.Free;
end;

procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
     Memo1.Lines.Add('有用户连接');
end;
end.

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/70568.html