0

所以我们有一个应用程序可以进行 udp 调用和发送数据包。但是,既然响应是针对 UDP 调用给出的,那么我们如何确保服务已启动且端口已打开并且内容正在被存储?

我们现在唯一的想法是发送测试数据包并确保它们被保存到数据库中。

所以我的全部问题是,有没有更好、更简单的方法来确保我们的 udp 调用成功?

4

2 回答 2

3

在侦听主机上,您可以使用netstat验证端口是否打开。例如,如果您的应用程序使用 UDP 端口 68,您可以运行:

# Grep for :<port> from netstat output.
$ netstat -lnu | grep :68
udp        0      0 0.0.0.0:68              0.0.0.0:*

您还可以将一些测试数据发送到您的应用程序,然后检查您的数据库以验证夹具数据是否已进入您的数据库。这并不意味着它总是会如此,只是它在测试时正在工作。

归根结底,问题在于 UDP 数据包是尽力而为的,并且无法保证。因此,除非您可以将日志平台配置为在接收和/或写入数据后发送某种确认,否则您无法保证任何事情。UDP 的本质是它将确认(如果有)留给应用层。

于 2012-05-18T21:02:34.790 回答
0

我们采取了不同的方法,我们正在检查以确保调用到达数据库。查询表并确保记录在那里很容易。如果最近没有,我们就知道出了点问题。CodeGnome 有一个好主意,只是不是我们走的路线。谢谢!

于 2012-06-21T21:50:51.817 回答