📄 unitmymodule.~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 + -