zx5000
zx5000

Reputation: 9

How can I make ServerSocket accept multiple connections from same IP?

I have a server socket that accepts connections and passes them off to a worker thread. This works concurrently when the connections come from different IP addresses. It will not accept a new connection from any given machine (ip address) until the previous connection is closed by that client.

How can I make this work?

Thanks in advance.

Edit: The requests from the same ip client will block until the previous completes.

    private ConcurrentLinkedQueue<WorkerThread> queueList = new ConcurrentLinkedQueue<WorkerThread>();

...

public void ServerSocketLoop()
{
    try
    {
    ServerSocket sk = new ServerSocket(iPort);
    while (!sk.isClosed())
    {
        Logger.Log(this, Logger.CONNECTION_ONLY, "Loop: ");
        int cnt = getQueueList().size();
        Socket clientSocket = sk.accept();
        String clIp = clientSocket.getInetAddress().getHostAddress();
        boolean match=false;
        if(!allowedIps.isEmpty())
        {
            for(String alIp : allowedIps.keySet())
            {
                if(clIp.startsWith(alIp))
                {
                    match=true;
                    break;
                }
            }
        }
        else
            match=true;
        if(match)
        {
            try
            {
                Logger.Log(this, Logger.CONNECTION_ONLY, "Accepting connection from: " + clIp);
                WorkerThread scs = new WorkerThread(clientSocket, this);
                getQueueList().add(scs);
            } catch (Exception e)
            {
                Logger.Log(this, e);
            }
        } else
        {
            Logger.Log(this, Logger.CONNECTION_ONLY, "Refused connection from: " + clIp);
        }
    }
    }
    catch(Exception e)
    {
        Logger.Log(this, e);
    }
}

Edit: More information.

The worker thread once started reads the (client) socket input stream, uses process builder to execute a command with the data read through the socket writes the results back through the output stream of the socket then closes the socket.

Log output: notice the connection at 20:06:10.305 from 192.168.1.32

[2013-09-28 20:04:51.181]    Accepting connection from: /0:0:0:0:0:0:0:1%0:49460
[2013-09-28 20:04:51.497]    Accepted socket
[2013-09-28 20:04:51.498]        In: one
[2013-09-28 20:04:51.499]    Looking for wrkr4237846575505157705.out
[2013-09-28 20:04:51.499]        Start process
[2013-09-28 20:05:07.564]    Accepting connection from: /192.168.1.32:32864
[2013-09-28 20:05:07.880]    Accepted socket
[2013-09-28 20:05:07.881]        In: one
[2013-09-28 20:05:07.881]    Looking for wrkr2936790469462792093.out
[2013-09-28 20:05:07.881]        Start process
[2013-09-28 20:05:24.600]        Finished
[2013-09-28 20:05:24.601]        Out: wrkr4237846575505157705 Sat Sep 28 20:04:51 CDT 2013
[2013-09-28 20:05:24.602]        Out: wrkr4237846575505157705 Sat Sep 28 20:04:54 CDT 2013
[2013-09-28 20:05:24.603]        Out: wrkr4237846575505157705 Sat Sep 28 20:04:57 CDT 2013
[2013-09-28 20:05:24.603]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:00 CDT 2013
[2013-09-28 20:05:24.604]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:03 CDT 2013
[2013-09-28 20:05:24.604]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:06 CDT 2013
[2013-09-28 20:05:24.605]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:09 CDT 2013
[2013-09-28 20:05:24.605]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:12 CDT 2013
[2013-09-28 20:05:24.605]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:15 CDT 2013
[2013-09-28 20:05:24.606]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:18 CDT 2013
[2013-09-28 20:05:24.607]        Out: wrkr4237846575505157705 Sat Sep 28 20:05:21 CDT 2013
[2013-09-28 20:05:24.628]    Accepting connection from: /0:0:0:0:0:0:0:1%0:49464
[2013-09-28 20:05:24.993]    Accepted socket
[2013-09-28 20:05:24.995]        In: two
[2013-09-28 20:05:24.996]    Looking for wrkr1946064549539591675.out
[2013-09-28 20:05:24.996]        Start process
[2013-09-28 20:05:40.984]        Finished
[2013-09-28 20:05:40.985]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:07 CDT 2013
[2013-09-28 20:05:40.985]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:10 CDT 2013
[2013-09-28 20:05:40.986]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:13 CDT 2013
[2013-09-28 20:05:40.986]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:16 CDT 2013
[2013-09-28 20:05:40.987]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:19 CDT 2013
[2013-09-28 20:05:40.987]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:22 CDT 2013
[2013-09-28 20:05:40.988]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:25 CDT 2013
[2013-09-28 20:05:40.988]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:28 CDT 2013
[2013-09-28 20:05:40.988]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:31 CDT 2013
[2013-09-28 20:05:40.989]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:34 CDT 2013
[2013-09-28 20:05:40.989]        Out: wrkr2936790469462792093 Sat Sep 28 20:05:37 CDT 2013
[2013-09-28 20:05:58.109]        Finished
[2013-09-28 20:05:58.110]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:25 CDT 2013
[2013-09-28 20:05:58.110]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:28 CDT 2013
[2013-09-28 20:05:58.110]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:31 CDT 2013
[2013-09-28 20:05:58.111]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:34 CDT 2013
[2013-09-28 20:05:58.111]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:37 CDT 2013
[2013-09-28 20:05:58.111]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:40 CDT 2013
[2013-09-28 20:05:58.112]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:43 CDT 2013
[2013-09-28 20:05:58.112]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:46 CDT 2013
[2013-09-28 20:05:58.112]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:49 CDT 2013
[2013-09-28 20:05:58.112]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:52 CDT 2013
[2013-09-28 20:05:58.113]        Out: wrkr1946064549539591675 Sat Sep 28 20:05:55 CDT 2013
[2013-09-28 20:05:58.160]    Accepting connection from: /0:0:0:0:0:0:0:1%0:49470
[2013-09-28 20:05:58.477]    Accepted socket
[2013-09-28 20:05:58.479]        In: three
[2013-09-28 20:05:58.480]    Looking for wrkr7376110979239359337.out
[2013-09-28 20:05:58.480]        Start process
[2013-09-28 20:06:10.305]    Accepting connection from: /192.168.1.32:32870
[2013-09-28 20:06:10.469]    Accepted socket
[2013-09-28 20:06:10.470]        In: laurie
[2013-09-28 20:06:10.470]    Looking for wrkr1695309805515169887.out
[2013-09-28 20:06:10.470]        Start process
[2013-09-28 20:06:31.591]        Finished
[2013-09-28 20:06:31.592]        Out: wrkr7376110979239359337 Sat Sep 28 20:05:58 CDT 2013
[2013-09-28 20:06:31.592]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:01 CDT 2013
[2013-09-28 20:06:31.593]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:04 CDT 2013
[2013-09-28 20:06:31.593]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:07 CDT 2013
[2013-09-28 20:06:31.593]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:10 CDT 2013
[2013-09-28 20:06:31.594]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:13 CDT 2013
[2013-09-28 20:06:31.594]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:16 CDT 2013
[2013-09-28 20:06:31.594]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:19 CDT 2013
[2013-09-28 20:06:31.595]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:22 CDT 2013
[2013-09-28 20:06:31.595]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:25 CDT 2013
[2013-09-28 20:06:31.595]        Out: wrkr7376110979239359337 Sat Sep 28 20:06:28 CDT 2013
[2013-09-28 20:06:31.642]    Accepting connection from: /0:0:0:0:0:0:0:1%0:49472
[2013-09-28 20:06:31.958]    Accepted socket
[2013-09-28 20:06:31.959]        In: four
[2013-09-28 20:06:31.960]    Looking for wrkr1689149287441159516.out
[2013-09-28 20:06:31.960]        Start process
[2013-09-28 20:06:43.581]        Finished
[2013-09-28 20:06:43.582]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:10 CDT 2013
[2013-09-28 20:06:43.582]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:13 CDT 2013
[2013-09-28 20:06:43.583]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:16 CDT 2013
[2013-09-28 20:06:43.583]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:19 CDT 2013
[2013-09-28 20:06:43.583]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:22 CDT 2013
[2013-09-28 20:06:43.584]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:25 CDT 2013
[2013-09-28 20:06:43.584]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:28 CDT 2013
[2013-09-28 20:06:43.584]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:31 CDT 2013
[2013-09-28 20:06:43.584]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:34 CDT 2013
[2013-09-28 20:06:43.585]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:37 CDT 2013
[2013-09-28 20:06:43.585]        Out: wrkr1695309805515169887 Sat Sep 28 20:06:40 CDT 2013
[2013-09-28 20:07:05.061]        Finished
[2013-09-28 20:07:05.062]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:31 CDT 2013
[2013-09-28 20:07:05.062]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:34 CDT 2013
[2013-09-28 20:07:05.062]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:37 CDT 2013
[2013-09-28 20:07:05.063]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:40 CDT 2013
[2013-09-28 20:07:05.063]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:44 CDT 2013
[2013-09-28 20:07:05.063]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:47 CDT 2013
[2013-09-28 20:07:05.064]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:50 CDT 2013
[2013-09-28 20:07:05.064]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:53 CDT 2013
[2013-09-28 20:07:05.064]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:56 CDT 2013
[2013-09-28 20:07:05.065]        Out: wrkr1689149287441159516 Sat Sep 28 20:06:59 CDT 2013
[2013-09-28 20:07:05.065]        Out: wrkr1689149287441159516 Sat Sep 28 20:07:02 CDT 2013
[2013-09-28 20:07:05.093]    Accepting connection from: /0:0:0:0:0:0:0:1%0:49524
[2013-09-28 20:07:05.409]    Accepted socket
[2013-09-28 20:07:05.411]        In: five
[2013-09-28 20:07:05.411]    Looking for wrkr8081329232671108201.out
[2013-09-28 20:07:05.411]        Start process
[2013-09-28 20:07:38.515]        Finished
[2013-09-28 20:07:38.516]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:05 CDT 2013
[2013-09-28 20:07:38.516]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:08 CDT 2013
[2013-09-28 20:07:38.517]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:11 CDT 2013
[2013-09-28 20:07:38.517]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:14 CDT 2013
[2013-09-28 20:07:38.517]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:17 CDT 2013
[2013-09-28 20:07:38.518]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:20 CDT 2013
[2013-09-28 20:07:38.518]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:23 CDT 2013
[2013-09-28 20:07:38.518]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:26 CDT 2013
[2013-09-28 20:07:38.519]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:29 CDT 2013
[2013-09-28 20:07:38.519]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:32 CDT 2013
[2013-09-28 20:07:38.519]        Out: wrkr8081329232671108201 Sat Sep 28 20:07:35 CDT 2013

Upvotes: 0

Views: 1768

Answers (2)

zx5000
zx5000

Reputation: 9

Well dang, my test program was broken. Not to try to understand if the client side (PHP) is the culprit.

Old program.

echo "one" | nc -C localhost 5554
echo "two" | nc -C localhost 5554
echo "three" | nc -C localhost 5554
echo "four" | nc -C localhost 5554
echo "five" | nc -C localhost 5554

New program.

echo "one" | nc -C localhost 5554&
echo "two" | nc -C localhost 5554&
echo "three" | nc -C localhost 5554&
echo "four" | nc -C localhost 5554&
echo "five" | nc -C localhost 5554&

Thanks for all your answers. Sorry to waste your time.

[2013-09-29 12:10:16.605]   jConnector 1.0.11: Listening on port 5554 Non-Blocking.
[2013-09-29 12:10:56.767]   Accepting connection from: /0:0:0:0:0:0:0:1%0:56522
[2013-09-29 12:10:56.768]   Accepting connection from: /0:0:0:0:0:0:0:1%0:56523
[2013-09-29 12:10:56.769]   Accepting connection from: /0:0:0:0:0:0:0:1%0:56524
[2013-09-29 12:10:56.769]   Accepting connection from: /0:0:0:0:0:0:0:1%0:56525
[2013-09-29 12:10:56.770]   Accepting connection from: /0:0:0:0:0:0:0:1%0:56526
[2013-09-29 12:10:56.879]   Accepted socket
[2013-09-29 12:10:56.879]   Accepted socket
[2013-09-29 12:10:56.880]   Accepted socket
[2013-09-29 12:10:56.880]   Accepted socket
[2013-09-29 12:10:56.880]   Accepted socket
[2013-09-29 12:10:56.925]       In: two
[2013-09-29 12:10:56.926]       In: three
[2013-09-29 12:10:56.926]       In: four
[2013-09-29 12:10:56.926]       In: five
[2013-09-29 12:10:56.926]       In: one
[2013-09-29 12:10:56.926]   Looking for wrkr5220076953748478982.out
[2013-09-29 12:10:56.926]   Looking for wrkr3694455183701587793.out
[2013-09-29 12:10:56.926]   Looking for wrkr4677686522325232523.out
[2013-09-29 12:10:56.926]   Looking for wrkr4460853175870098981.out
[2013-09-29 12:10:56.926]   Looking for wrkr1676325861140446848.out
[2013-09-29 12:10:56.927]       Start process
[2013-09-29 12:10:56.927]       Start process
[2013-09-29 12:10:56.927]       Start process
[2013-09-29 12:10:56.927]       Start process
[2013-09-29 12:10:56.927]       Start process
[2013-09-29 12:11:30.049]       Finished
[2013-09-29 12:11:30.050]       Out: wrkr3694455183701587793 Sun Sep 29 12:10:56 CDT 2013
[2013-09-29 12:11:30.051]       Out: wrkr3694455183701587793 Sun Sep 29 12:10:59 CDT 2013
[2013-09-29 12:11:30.051]       Finished
[2013-09-29 12:11:30.051]       Finished
[2013-09-29 12:11:30.051]       Finished
[2013-09-29 12:11:30.051]       Finished
[2013-09-29 12:11:30.051]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:02 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr4677686522325232523 Sun Sep 29 12:10:56 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr5220076953748478982 Sun Sep 29 12:10:56 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr1676325861140446848 Sun Sep 29 12:10:56 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr4460853175870098981 Sun Sep 29 12:10:56 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:05 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr4677686522325232523 Sun Sep 29 12:10:59 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr5220076953748478982 Sun Sep 29 12:10:59 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr1676325861140446848 Sun Sep 29 12:10:59 CDT 2013
[2013-09-29 12:11:30.052]       Out: wrkr4460853175870098981 Sun Sep 29 12:10:59 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:08 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:02 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:02 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:02 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:02 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:11 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:05 CDT 2013
[2013-09-29 12:11:30.053]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:05 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:05 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:05 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:08 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:15 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:08 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:08 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:08 CDT 2013
[2013-09-29 12:11:30.054]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:11 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:11 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:18 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:11 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:11 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:15 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:15 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:15 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:15 CDT 2013
[2013-09-29 12:11:30.055]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:21 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:18 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:18 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:18 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:18 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:21 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:24 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:21 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:21 CDT 2013
[2013-09-29 12:11:30.056]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:21 CDT 2013
[2013-09-29 12:11:30.057]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:24 CDT 2013
[2013-09-29 12:11:30.057]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:24 CDT 2013
[2013-09-29 12:11:30.057]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:24 CDT 2013
[2013-09-29 12:11:30.057]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:24 CDT 2013
[2013-09-29 12:11:30.057]       Out: wrkr4677686522325232523 Sun Sep 29 12:11:27 CDT 2013
[2013-09-29 12:11:30.057]       Out: wrkr5220076953748478982 Sun Sep 29 12:11:27 CDT 2013
[2013-09-29 12:11:30.058]       Out: wrkr4460853175870098981 Sun Sep 29 12:11:27 CDT 2013
[2013-09-29 12:11:30.058]       Out: wrkr1676325861140446848 Sun Sep 29 12:11:27 CDT 2013
[2013-09-29 12:11:30.057]       Out: wrkr3694455183701587793 Sun Sep 29 12:11:27 CDT 2013

Upvotes: 0

Stephen C
Stephen C

Reputation: 718758

There is nothing magical about allowing a ServerSocket to accept multiple requests from the same IP. In fact, it will happen naturally ... and it looks like your code will do that.

However, your code (as shown) is creating threads but not starting them. Unless you start a thread, its run() method won't run.

(I assume that WorkerThread is a subclass of Thread.)

In other words, you are already accepting the request connections, but it is doubtful that it is reading and processing the requests.


For what it is worth, it is a BAD IDEA to write your worker logic by extending the Thread class. It is better to implement the Runnable interface, and pass that as a constructor argument to a plain Thread object. Or better still use something like a ThreadPoolExecutor with a bounded thread pool to manage the creation of threads and queuing of requests.

Upvotes: 2

Related Questions