We have a problem with the Sockets in Linux: We have written a server which is used strictly locally. That means, it doesn't get requests from another host than localhost. It does get half open connections nonetheless. My understanding is that this cannot be, because to get a half open connection, the other *host* must fail, which should be impossible with localhost. Nonetheless I have written a workaround. That is a process listening on the socket, then forking the server. The server accepts the connection and so on. The parent waits on a kill of the server and forks anew. So I thought "If the server hangs, I will kill it, the server is forked anew, the listening socket is never closed, so the accept will get the server the next connection and the old one will fade away thanks to SO_KEEPALIVE". What really happens is another matter: The accept-Call accepts the hanging connection anew (please note that only the child ever accepts) and I'm back at square one. Please help with either an explanation or a working workaround! Please note that a fork for each connection is not an option, because of concurrency problems. - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html