IdTcpServer
uses IdContext //需要引用
屬性,方法:
IdTCPServer.Active :=True; //開啟服務器
IdTCPServer1.Bindings.Add.IP := '127.0.0.1';//綁定IP
IdTCPServer1.Bindings.Add.Port := 7956;//綁定端口
事件:
OnConnect : 客戶端連接成功觸發
OnDisConnect : 客戶端斷開觸發
OnExeCute : 收到客戶端數據觸發
例子
//像所有客戶斷發送數據
var
I: Integer;
Context: TIdContext;
begin
with IdTCPServer1.Contexts.LockList do
try
for I := 0 to Count - 1 do
begin
Context := TIdContext(Items[I]);
Context.Connection.IOHandler.Write('Hello,everybody!');
end;
finally
IdTCPServer1.Contexts.UnlockList;
end;
end;
//向某個客戶發送數據
var
I: Integer;
Context: TIdContext;
begin
with IdTCPServer1.Contexts.LockList do
try
for I := 0 to Count - 1 do
begin
Context := TIdContext(Items[I]);
if Context.Binding.PeerIP <> '192.168.10.90' then
continue;
Context.Connection.IOHandler.Write('Hello!');
end;
finally
IdTCPServer1.Contexts.UnlockList;
end;
end;
IdTcpClient
屬性,方法:
ConnectTimeOut:連接超時
Host:主機IP或域名
IPVersion:Ip版本 ipv4 or ipv6
Name:控件名
Port:主機端口
ReadTimeOut:讀取超時
IdTCPClient1.Connect; //連接服務端
IdTCPClient1.Disconnect;//端開連接
IdTCPClient1.Connected;//是否連接成功 返回true 連接成功
IdTCPClient1.IOHandler.WriteLn('aa');// 向服務端發送數據
OnWork事件AWorkMode=wmRead 表示有收到數據
轉自:http://hi.baidu.com/given/blog/item/57a4acc3a7ad8853b219a852.html