I have an asynchronous TCP server which accepts incoming connection requests and serves each client on an individual thread created by the OS (ie asynchronous mode). I tested my server/client on a LAN and they comminicate with each other quite easily. But when i used dial up connections to connect two PCs to the internet using a modem(tried 56k e-dynalink modem II and a 56k dynalink modem) , the client connects to the server but data can be send from the client socket to the server socket only. Any transfers from the server to the client on the same socket pair fails. Can anyone explain why? I can use two sockets on the client to send and recieve data to the server and vice versa and that works ok so it seems like the modem restricts data transfer over a socket pair to one direction only. Is there a better way of doing the above over a normal 56k modem which support at least half duplex mode.
Another aspect that i need to get clarified is the maximum number of socket an application can have. I read that this depends on the platform and that in general win98-winxp can support over a 10000 sockets per computer. I need to support 4000 connections (8000 sockets if im using 2 for send and receive at one end) would this be feasible at all? I know there are other factors that need to be considered like RAM and CPU speed etc.. but what would you recommend as a solid approach to achieving this.
Lastly could you recommend me some TCP controls(dot net comp) i can use to achive a fast and reliable solution to all of the above?
thanks in advance