Solved

ServerSocket

Posted on 2001-07-19
9
318 Views
Last Modified: 2012-06-27
Hiya,

I created the 'standard' echo-server using the ServerSocket. Each new connection is handled in its own thread. it all works fine with a few clients.

I then wrote a small client that creates heaps of threads each trying to connect to the echo-server.. this gives me unpredictable errors.. If i startup n-clients (in n-threads) anywhere from 0-n threads can't connect to the echo-server and come back with a :

java.net.ConnectException: Connection refused: no further information
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:312)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:125)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:112)
        at java.net.Socket.<init>(Socket.java:273)
        at java.net.Socket.<init>(Socket.java:100)
        at mytestpackage.testConnectionThread.run(testConnectionThread.java:38)

from the
Socket aSocket = new Socket("127.0.0.1",portNumber);
statement..

I'm running JDK1.3 on NT4.0 SP6 but hope it is not an OS problem..

Any Idea's "?

best regards,
tom
0
Comment
Question by:tomschuring1
[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
9 Comments
 
LVL 92

Expert Comment

by:objects
ID: 6301084
I think there's a os limit to the number of open sockets.
WHat was the error (if any) on the server side?
0
 
LVL 92

Expert Comment

by:objects
ID: 6301093
It could also possibly be running out of threads??
How many connections are we talking about?
0
 
LVL 92

Expert Comment

by:objects
ID: 6301095
0
Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

 

Expert Comment

by:jerrycao
ID: 6301626
it is better to paste ur source code here...
if u do not mind.
0
 
LVL 2

Expert Comment

by:userquin
ID: 6301638
Hi:

In server side you create a ServerSocket. If you use ServerSocket(int port) constructor it creates a queue for incoming requests with a lenght of 50. If you exceed 50 (queue is full) connections it throws a ConnectionException exception (refused, what you catch).

You can prefix queue length using ServerSocket(int port, int backlog) constructor. I do not know if there is a OS restriction for this.

Bye.

J.
0
 
LVL 1

Expert Comment

by:swapsthegreat
ID: 6302232
i think the queue limit is 25 connections
0
 

Author Comment

by:tomschuring1
ID: 6306713
the minimum number of connections that I can get it to happen with is 100

I did do do a mServerSocket = new ServerSocket(port,1000);

just to make sure it is not the QueueSize that blows me up.

There is no error on the server side at all.

I have just moved the server to a windowsNT Server (I am running workstation) and it started to accept all connections. mmmmm seems to work properly now. what do i do with the points ? Howabaout I'll give them to someone who can explain why it doesn't work on workstation ?
0
 
LVL 92

Accepted Solution

by:
objects earned 200 total points
ID: 6306750
At a guess it has a smaller limit on open sockets.
0
 
LVL 92

Expert Comment

by:objects
ID: 6307190
Sorry I couldn't give a more definitive answer.
Thanks for the points :)
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
This video teaches viewers about errors in exception handling.

733 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