Half open

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

 



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


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux