IdTcpServer/IdTcpClient 实例

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

posted @ 2012-01-19 14:25  stma  阅读(10585)  评论(0编辑  收藏  举报