delphi使用IdTCPServer、TIdTCPClient收发消息<wbr><wbr></wbr></wbr>
2012-03-06 14:51:58|<wbr><wbr>分类:</wbr></wbr> 编程 |<wbr><wbr>标签:</wbr></wbr> |字号大中小<wbr></wbr>订阅
unit Unit1;
interface
uses
<wbr> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br><wbr> Dialogs, StdCtrls, IdTCPServer, IdBaseComponent, IdComponent,<br><wbr> IdTCPConnection, IdTCPClient;</wbr></wbr></wbr>
type
<wbr> TForm1 = class(TForm)<br><wbr><wbr><wbr> IdTCPClient1: TIdTCPClient;<br><wbr><wbr><wbr> IdTCPServer1: TIdTCPServer;<br><wbr><wbr><wbr> Button1: TButton;<br><wbr><wbr><wbr> Button2: TButton;<br><wbr><wbr><wbr> Memo1: TMemo;<br><wbr><wbr><wbr> procedure Button1Click(Sender: TObject);<br><wbr><wbr><wbr> procedure Button2Click(Sender: TObject);<br><wbr><wbr><wbr> procedure IdTCPServer1Execute(AThread: TIdPeerThread);<br><wbr><wbr><wbr> procedure IdTCPClient1Connected(Sender: TObject);<br><wbr> private<br><wbr><wbr><wbr> { Private declarations }<br><wbr> public<br><wbr><wbr><wbr> { Public declarations }<br><wbr> end;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
var
<wbr> Form1: TForm1;</wbr>
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); //连接按钮
begin
<wbr><wbr> IdTCPClient1.Host:='192.168.0.200';<br><wbr><wbr> IdTCPClient1.Port:=1239;<br><wbr><wbr> IdTCPClient1.Connect;<br> end;</wbr></wbr></wbr></wbr></wbr></wbr>
procedure TForm1.Button2Click(Sender: TObject); //发送按钮
var
<wbr><wbr> sm:TStringStream;<br><wbr><wbr> msize:Integer;<br> begin<br><wbr><wbr> sm:=TStringStream.Create('大家好');<br><wbr><wbr> msize:=sm.Size;<br><wbr><wbr> Memo1.Lines.Add('发送时流大小为:'+inttostr(msize));<br><wbr><wbr> IdTCPClient1.WriteInteger(msize);<br><wbr><wbr> IdTCPClient1.WriteStream(sm);<br><wbr><wbr> sm.Free;<br> end;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
<wbr><wbr> s:string;<br><wbr><wbr> sm:TStringStream;<br><wbr><wbr> msize:integer;<br> begin<br><wbr><wbr> sm:=TStringStream.Create('');<br><wbr><wbr> msize:=AThread.Connection.ReadInteger();<br><wbr><wbr> Memo1.Lines.Add('接收到的大小为:'+inttostr(msize));<br><wbr><wbr> AThread.Connection.ReadStream(sm,msize);<br><wbr><wbr> Memo1.Lines.Add(sm.DataString);<br><wbr><wbr> sm.Free;<br> end;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
<wbr><wbr><wbr><wbr> Memo1.Lines.Add('有用户连接');<br> end;<br> end.<wbr></wbr></wbr></wbr></wbr></wbr>