• 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   表示有收到数据
  • 相关阅读:
    程序的本质复杂性和元语言抽象
    编译器词法消歧设计
    关于分工的思考 (Thoughts on Division of Labor)
    数据即代码
    类型的本质和函数式实现
    二叉树迭代器算法
    kvm虚拟化存储管理
    kvm网络虚拟化管理
    kvm虚拟机的四种网络模式
    Linux 中交换空间 (swap)应该分多大才好?
  • 原文地址:https://www.cnblogs.com/tk-del/p/3342903.html
Copyright © 2020-2023  润新知