⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitmymodule.~pas

📁 远程抄表系统的客户端程序 安徽六安项目-客户端程序 0 开发环境 Delphi 7.0 所需控件 mxOutlookBar 数 据 库 Sybase 11.5 1 04-12-
💻 ~PAS
字号:
unit UnitMyModule;

interface

uses
  SysUtils, Classes, DB, ADODB, DBXpress, FMTBcd, SqlExpr, IdUDPClient,
  IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, IdStack, IdSocketHandle;

type
  TMyModule = class(TDataModule)
    AdoConn: TADOConnection;
    AdoQuery: TADOQuery;
    UDPClient: TIdUDPClient;
    UDPServer: TIdUDPServer;
    procedure DataModuleCreate(Sender: TObject);
    procedure UDPServerUDPRead(Sender: TObject; AData: TStream;
      ABinding: TIdSocketHandle);
  private
    { Private declarations }
  public
    { Public declarations }
    function GetLocalIpAddress():string;
  end;

var
  MyModule: TMyModule;

implementation

uses UnitMain, UnitOrder1, UnitOrder3;

{$R *.dfm}

function TMyModule.GetLocalIpAddress():string;
begin
  result := GStack.LocalAddress;
end;

procedure TMyModule.DataModuleCreate(Sender: TObject);
begin
  {
  '本地名字'    MyModule.UDPServer.LocalName
  '本地ip地址'  MyModule.GetLocalIpAddress()
  '监视端口号'  IntToStr(MyModule.UDPServer.DefaultPort)
  '最大缓冲'    IntToStr(MyModule.UDPServer.BufferSize)

  MyModule.UDPClient.Send('111111111');
  }
  UdpClient.Host := FormMain.IniFile.ReadString('Udp', 'ServerIp', '192.168.2.6');
  UdpClient.Port := StrToInt(FormMain.IniFile.ReadString('Udp', 'ServerPort', '1080'));
  UdpClient.BufferSize := 8192;
  UDPClient.Active := true;

  //客户端监视端口 =( 服务器监视端口 + 1 )
  UdpServer.DefaultPort := UdpClient.Port + 1;
  UDPServer.BufferSize  := 8192;
  UDPServer.Active := True;
end;

procedure TMyModule.UDPServerUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  DataStringStream: TStringStream;
  s : String;
begin
  DataStringStream := TStringStream.Create('');
  try
    DataStringStream.CopyFrom(AData, AData.Size);
    //增加到最后
    //FormOrder3.MemoMsg.Lines.Add('IP: ' + ABinding.PeerIP + ' Port: '+ 'Data: ' + IntToStr(ABinding.PeerPort) + '  事 件');
    //s := DataStringStream.DataString;
    //FormOrder3.MemoMsg.Lines.Add(s);
    //插入到开始
    //FormOrder3.MemoMsg.Lines.Insert(0, 'IP: ' + ABinding.PeerIP + ' Port: '+ 'Data: ' + IntToStr(ABinding.PeerPort) + '  事 件');
    s := DataStringStream.DataString;
    FormOrder3.MemoMsg.Lines.Insert(0, s);
    if (FormOrder3.bTimerRefresh = True) and
       (FormOrder3.ListView.Items.Count < FormOrder3.OrderCount ) and
       (FormOrder3.OrderDelay   <= 0 )   then
    begin
      FormOrder3.DataRefresh();
    end;
  finally
    DataStringStream.Free;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -