[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xinetd UDP vs. TCP Output



I'm using a small program that's started by xinetd.  The incoming signal to it would be a broadcast signal, which means it has to be UDP.

I wrote two versions of the test program, one in Perl and one as a bash script and both ran into the same problem.

They worked fine when I first set them up and set up the service in xinetd as using TCP.  Then I changed the service to UDP and made the appropriate changes to my programs.

They still logged everything, they still received incoming messages from the other test programs that were communicating to them (either directly or through a broadcast), but they did NOT send any data back.  I checked it this with Wireshark.  The incoming data showed up, but the data these programs were supposed to send back didn't even go out over the LAN.

The programs ran and exited properly, but the output to the network never showed up.

While I don't know but so much about networking, I know TCP and UDP sockets are notably different.  I can't find anything in the documentation that indicates that for a program using UDP sockets, that it has to use something other than STDIN and STDOUT.  I even found sources that say you SHOULD still be using STDIN and STDOUT for programs using UDP through xinetd.

I don't consider this just a programming question, since it's the same in both languages.  I strongly suspect there's a different way to handle the output that's supposed to go back over the network for UDP (vs. TCP).

Any ideas on what might be needed?


Thank you!


Hal

Reply to: