Cannot use a single TCP socket to send and receive data over a modem

Posted on 2004-12-01
Last Modified: 2010-04-17
Hi all,
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
Question by:Programmers
    1 Comment
    LVL 1

    Accepted Solution

    Just a comment, there is a problem on the code, if some data is sent from one place to the other, there is some 'aknowledgment' packets sent in the oposite way for each data you transfer, so make sure you are not making some mistakes on the data_arrival event handler of your program (is the event triggered at all?).

    Recomended sockets: try SocketWrench from Cathalist. Is quite easy to use, but I created a game server where there always are over 200 connections and sometimes the control mixes the connections, so take advice carefully.


    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    What Should I Do With This Threat Intelligence?

    Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

    I know it’s not a new topic to discuss and it has lots of online contents already available over the net. But Then I thought it would be useful to this site’s visitors and can have online repository on vim most commonly used commands. This post h…
    Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
    Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
    In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

    759 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    9 Experts available now in Live!

    Get 1:1 Help Now