- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从端口 514 上的 UDP 读取系统日志。我使用的是 delphi 2010。我放置了一个 IdUDPServer 并将 DefaultPort 设置为 514,将 BufferSize 设置为 1024。该系统日志由 Cisco 防火墙 5505 生成。我像这个命令一样向我的防火墙发送 ping 操作。 平 192.168.1.100 -t当我运行 kiwi(一种监视系统日志消息的软件)时,每个 ping 都会收到 2 条消息,如下所示。
%ASA-6-302021:拆除 faddr 192.168.1.4/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0 的 ICMP 连接%ASA-6-302020:为 faddr 192.168.1.4/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0 构建入站 ICMP 连接
但在我的监听器中,每次 ping 只会收到一条消息。像这样%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
最佳答案
当我调用我的一位 friend 询问此事时,我感到很失望。他说最好不要在delphi中使用Indy,因为它有bug。所以我搜索了其他组件。有一个开源的。 ICS(Internet Component Suite)运行良好。您可以获得任何 delphi 版本或 C++ Builder 的开源代码!
在产品部分选择ICS即可下载最新版本。幸运的是它有很多组件并且它有TSysLogServer。它不会丢失任何 UDP 数据包。确实,UDP 不保证数据包不丢失。但是当我看到其他程序(如 kiwi 和wireshark)正确获取数据包时,我应该知道程序中问题的根源是组件。
所以我的问题的答案是:不要使用 INDY !!!
我不知道 Indy 只是在 delphi 中存在这样的问题,或者在其他语言中也有同样的问题。 :|
关于delphi - 如何在delphi中完全从Cisco防火墙获取系统日志消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17442764/
我是一名优秀的程序员,十分优秀!