ポート 514 で UDP から syslog を読み取りたいです。デルファイ 2010 を使用しています。IdUDPServer を配置し、DefaultPort を 514 に、BuffeSize を 1024 に設定しました。この syslog は Cisco ファイアウォール 5505 によって生成されます。このコマンドのようにファイアウォールに ping を送信しています。 . Ping 192.168.1.100 -t kiwi (syslog メッセージを監視しているソフトウェア) を実行すると、このように ping ごとに 2 つのメッセージが表示されます。
%ASA-6-302021: faddr 192.168.1.4/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0 の Teardown ICMP 接続1.100/0 ラダー 192.168.1.100/0
しかし、私のリスナーでは、ping ごとに 1 つのメッセージしか受け取りません。この %ASA-6-302020 のように: faddr 192.168.1.4/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0 のインバウンド ICMP 接続を構築
リスナーで最初のメッセージを取得できない理由がわかりません。IdUDPServer の OnRead イベントでこのようなコードを書きました
procedure TMyTestOnSyslog.Listener514UDPRead(
AThread: TIdUDPListenerThread; AData: TBytes; ABinding: TIdSocketHandle);
var S:string;
i:Integer;
begin
S:='';
for i := 0 to High(AData) do
S:=S+chr(Adata[i]);
...
end;
私は何をすべきか?:D