i've found quite a bit of articles on sockets, particularly on msdn, but one thing i haven't been able to ascertain, is how multiple concurrent connections are implemented on the server.

i've set up my own one-to-one client/server socket implementation and it works. however, if i close the client application, restart it and attempt to connect, the accept function fails with a WSAEINVAL error. According to msdn, WSAEINVAL - means the listen function was not invoked prior to accept.

this is not true though - the listen function was invoked prior to accept, which is how the first connection attempt was successfull.

any high-level thoughts as to why i might be having this problem? if needs be, i'll post some code, but i don't think it's much different that any other socket code out there..