Solved

TCP Connection Limit ?

Posted on 1998-10-08
4
234 Views
Last Modified: 2013-12-23
I have a UNIX program that loops while trying to make a socket connection. If the connect fails enough I run out of available TCP Connections. Here is a code fragment;
...
do {
  connected_I = -1;

    /*** OPEN SOCKET TO NT SERVER ***/
    fSocket = socket(AF_INET,SOCK_STREAM,0);
    if (fSocket == -1)
    {
      connected_I = 0;
    }

    /*** CONNECT TO SOCKET  ***/
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = GetAddr(ip_addr);
    sin.sin_port = htons((u_short)(13011));

    if (connect(fSocket,
                (struct sockaddr FAR *) &sin,
                sizeof(sin))==-1)
    {
     connected_I = 0;
    }

    if (!connected_I)
    {
      shutdown(fSocket,2);
      close(fSocket);
      sleep(2);
    }

} while(!connected_I);
...
Can anyone see anything wrong with this?
Is there a table of some sort in UNIX that gets filled up and only released when my process terminates?
Any help anyone can offer would be great!
0
Comment
Question by:AndrewR
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 

Author Comment

by:AndrewR
ID: 1582415
Edited text of question
0
 

Author Comment

by:AndrewR
ID: 1582416
Edited text of question
0
 

Accepted Solution

by:
ydsh earned 200 total points
ID: 1582417
Try to insert these codes into your loop:

struct linger  socketLinger;  
.
        socketLinger.l_onoff = 1;
        socketLinger.l_linger = 0;
        if(setsockopt(fSocket,SOL_SOCKET,SO_LINGER,
                           &socketLinger,sizeof(struct linger)) == -1){
                perror("set sock opt error");
                return(-1);
        }                      
.

Then it should work.  If, it still do not work, then the problem must lay on your NT server. :)
For in my unix-unix network, communication, no problem occured!                                              
0
 

Author Comment

by:AndrewR
ID: 1582418
Thanks
0

Featured Post

Flexible connectivity for any environment

The KE6900 series can extend and deploy computers with high definition displays across multiple stations in a variety of applications that suit any environment. Expand computer use to stations across multiple rooms with dynamic access.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Make the most of your online learning experience.
This program is used to assist in finding and resolving common problems with wireless connections.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
If you're a developer or IT admin, you’re probably tasked with managing multiple websites, servers, applications, and levels of security on a daily basis. While this can be extremely time consuming, it can also be frustrating when systems aren't wor…
Suggested Courses
Course of the Month4 days, 12 hours left to enroll

635 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