in reply to exit isn't killing children

exit(0) isn't killing the children in this.
exit never kills children. It tells the current process to go away.

What am I doing wrong?
It's impossible to answer that without knowing what you're trying to do. As you correctly noted, this program accepts a connection, then does nothing. But your note sounds like you were expecting it to do something else. What were you expecting? If you describe that more fully, it'll be a lot easier to help.