xinetd:udp 服务仅返回一个字符串

xinetd:udp 服务仅返回一个字符串

我正在使用 xinetd 来提供一个简单的服务,它基本上只需要返回一个字符串值。

该服务需要支持 tcp 和 udp

TCP 服务看起来就像这样,并且按预期工作:

service simple-tcp
{
    disable         = no
    type            = UNLISTED
    id              = tcp-service
    socket_type     = stream
    port            = 20
    protocol        = tcp
    user            = nobody
    wait            = no
    server          = /bin/echo
    server_args     = Hello World.
    instances       = 25
    log_on_success  += DURATION HOST
    log_on_failure  += ATTEMPT HOST
    per_source      = 5
}

所以我想做同样的事情udp 服务但至今我还没能让它发挥作用。

service udp-service
{
    disable         = no
    type            = UNLISTED
    id              = udp-service
    socket_type     = dgram
    port            = 25
    protocol        = udp
    user            = nobody
    wait            = yes
    server          = /bin/echo
    server_args     = Hello World.
    instances       = 25
    log_on_success  += DURATION HOST
    log_on_failure  += ATTEMPT HOST
    per_source      = 5
}

我意识到wait = yes这对于 udp 来说是必要的。如果我向服务发送数据,连接就会被记录下来,但我无法收到响应。日志文件包含“status=1”,表示错误。但我不知道如何缩小范围。

有人能解释一下发生了什么,是否有办法解决这个问题,或者另一种简单的方法就是通过 udp 返回一个字符串?

相关内容