📄 monsoc.pas
字号:
unit MonSoc;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, JSocket;
type
TFrmMonSoc = class(TForm)
MonSocket: TServerSocket;
MonTimer: TTimer;
procedure FormCreate(Sender: TObject);
procedure MonTimerTimer(Sender: TObject);
procedure MonSocketClientError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmMonSoc: TFrmMonSoc;
implementation
uses MasSock, LSShare;
{$R *.DFM}
procedure TFrmMonSoc.FormCreate(Sender: TObject);
var
Config: pTConfig;
begin
Config := @g_Config;
MonSocket.Active := False;
MonSocket.Address := Config.sMonAddr;
MonSocket.Port := Config.nMonPort;
MonSocket.Active := True;
end;
procedure TFrmMonSoc.MonTimerTimer(Sender: TObject);
var
I: integer;
nC: integer;
MsgServer: pTMsgServerInfo;
sServerName: string;
sMsg: string;
begin
sMsg := '';
nC := FrmMasSoc.m_ServerList.Count;
for I := 0 to FrmMasSoc.m_ServerList.Count - 1 do begin
MsgServer := FrmMasSoc.m_ServerList.Items[i];
sServerName := MsgServer.sServerName;
if sServerName <> '' then begin
sMsg := sMsg + sServerName + '/' + IntToStr(MsgServer.nServerIndex) +
'/' + IntToStr(MsgServer.nOnlineCount) + '/';
if (GetTickCount - MsgServer.dwKeepAliveTick) < 30000 then
sMsg := sMsg + '正常 ;'
else
sMsg := sMsg + '超时 ;';
end else
sMsg := '-/-/-/-;';
end;
for I := 0 to MonSocket.Socket.ActiveConnections - 1 do begin
MonSocket.Socket.Connections[i].SendText(IntToStr(nC) + ';' + sMsg);
end;
end;
procedure TFrmMonSoc.MonSocketClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: integer);
begin
ErrorCode := 0;
Socket.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -