Saskia van Schagen:
> Victor, thanks for trying to help out. But still this cannot be true. In
> Postfix I cannot setup a different socket for each smtpd process, if I had
> 100 smtpd processes, I cannot tell Postfix that each of these 100 processes
> should connect with a different client socket.
You have fundamentally not understood how TCP or UNIX-domain sockets work.
> So we have one socket here, with 1 client side and 1 server side and we're
> going to keep the connection alive.
No, there are N client endpoints for 1 server endpoint. The client
invokes connect(); the server invokes listen() once and invokes
accept() for every client connection. Then the server can receive
data over TCP streams.
Example:
server does listen() on 127.0.0.1 port 25
client does connect() to 127.0.0.1 port 25 from 127.0.0.1 port 5001
server does accept() which returns a socket for the above connection
client does connect() to 127.0.0.1 port 25 from 127.0.0.1 port 5002
server does accept() which returns a socket for the above connection
Now the server has two sockets for the accepted connections, and one
socket for accepting new connections.
Looks like you are accepting only one connection at a time.
Wietse