分享

delphi使用IdTCPServer、TIdTCPClient收发消息

 Gavin-book 2013-09-25

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.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多