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 @   stma  阅读(10610)  评论(0编辑  收藏  举报
编辑推荐:
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
点击右上角即可分享
微信分享提示