Xathael, I have not done what your doing but if you were willing to share you code I would love to learn more and maybe work on it with you. You can send me a private msg if you like.
|The client gets input from the keyboard, sends it to the server, and the server receives the data and sends it back to the client|
I don't know anything about winsock, or blocked sockets but have some experience with general networking.
To discuss what your doing, would it be possible for the client or server to open and close the connection when not in use?
That means only one could connect at a time but it's probably so fast you might not run into a problem, if you code the client to retry every second for 10 seconds.
The only other way I can think of is to have your server listen on multiple ports, say 5000-5032 and the client would try one, then another until it found a open connection.
The network address would look like 10.10.10.10:5000
Anther idea came to mind, if you have the server listen on one address, such as 10.10.10.10:5000, it then tells each client that wants to talk to it which port is free, so that 5000 is always free except for a brief fraction of a second. Then the client would connect to the given address and could keep the connection open until it's done.