我使用xinetd来提供一个简单的服务,基本上只需要返回一个string值。
该服务需要支持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。 如果我将数据发送到服务,连接会被logging下来,但我无法收到响应。 日志文件包含“status = 1”,表示出错。 但我不知道如何缩小这个范围。
任何人都可以解释发生了什么事情,如果有办法解决这个问题,或另一种简单的方法来通过udp返回一个string?