Re: Hitting a maximum number of SOCKET connections?

2009-11-04 Thread Anders Boström
I have installed 5.10, but the problem still occures.
The demo in http://www.mollehem.se/bilder/socketDemo.zip illustrates it.

Any clue?

Thanks
Anders


Brian Raven skrev:
 Anders Boström  wrote:
   
 Hej,
 I have a server implemented in Perl.
 It handles multiple connection with the use of IO::Select.

 All work well with the first 63 concurrent clients, but if client 64
 and upwards sends messages, they will not be seen on the server as
 long as the other 63 client are connected to the server. Is there a
 limit that I have hit, or whats going on?  
 I have tested it on Win XP, and Win Server 2003.

 I have made a small demo program (based on a tutorial snippet I
found) that illustrates the problem.
 http://www.mollehem.se/bilder/socketDemo.zip 
 It consist of one server and one client.
 The client opens 100 connections. Then it starts sending ping on
 each connection. 1-63 can be seen on the server side, but not 64-100. 
 Then the client starts closing the connections, and for each closed
 connection, one more ping is seen on the server! 

 I would be very happy for an explanation!
 

 64 is the default limit on the number of file handles that you can call 
 select with in win32. According to the doco (ActivePerl 5.10 Change Log), 
 this was increased to 2000 for build 1001, so you might want to upgrade your 
 Perl.

 HTH

   
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


RE: Hitting a maximum number of SOCKET connections?

2009-11-04 Thread Brian Raven
Anders Boström mailto:anders.bost...@mollehem.se wrote:
 I have installed 5.10, but the problem still occures.
 The demo in http://www.mollehem.se/bilder/socketDemo.zip illustrates
 it. 
 
 Any clue?

I have build 1004, and your code worked OK here, i.e. all 100 sockets opened 
and pinged. Even when I increased the number of sockets to 200. It may be that 
the new version isn't installed properly. What does 'perl -v' say? You did 
uninstall the previous version first, right?

BTW, I added 'use strict; use warnings;' to the start of your scripts, and 
fixed the issues raised before running them. I strongly suggest that you do the 
same.

-- 
Brian Raven 
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient or have received this e-mail in error, please advise 
the sender immediately by reply e-mail and delete this message and any 
attachments without retaining a copy.

Any unauthorised copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Hitting a maximum number of SOCKET connections? Continued...

2009-11-04 Thread Anders Boström
Hello again,
I have received test result from 2 people that tested the example, and 
both failed in the same way.
To clarify the previous explanation of the problem.
Its seen on the server side!
When the client has sent 63 PING's, the server stops showing the rest of 
the PING's (64-100).  They will the show up one by one, when the client 
starts to close the connections.

It seems that only 63 sockets can deliver messages to the server at one 
time.
The other sockets are silent seen from the server.

Still - if anybody could explain why this is, I would be very happy.
So long
Anders



---

Hej,
I have a server implemented in Perl.
It handles multiple connection with the use of IO::Select.

All work well with the first 63 concurrent clients, but if client 64 and
upwards sends messages, they will not be seen on the server as long as
the other 63 client are connected to the server.
Is there a limit that I have hit, or whats going on?
I have tested it on Win XP, and Win Server 2003.

I have made a small demo program (based on a tutorial snippet I found)
that illustrates the problem.
   http://www.mollehem.se/bilder/socketDemo.zip
It consist of one server and one client.
The client opens 100 connections. Then it starts sending ping on each
connection. 1-63 can be seen on the server side, but not 64-100.
Then the client starts closing the connections, and for each closed
connection, one more ping is seen on the server!

I would be very happy for an explanation!
Thanks
Anders

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


RE: Hitting a maximum number of SOCKET connections? Continued...

2009-11-04 Thread Brian Raven
Anders Boström  wrote:
 Hello again,
 I have received test result from 2 people that tested the example,
 and both failed in the same way. 
 To clarify the previous explanation of the problem.
 Its seen on the server side!
 When the client has sent 63 PING's, the server stops showing the rest
 of the PING's (64-100).  They will the show up one by one, when the
 client starts to close the connections.  
 
 It seems that only 63 sockets can deliver messages to the server at
 one time. 
 The other sockets are silent seen from the server.
 
 Still - if anybody could explain why this is, I would be very happy.

I can confirm that select on win32 only seems to consider the first 64 file 
descriptors. Perhaps somebody from Activestate could check that the change to 
allow 2000 file descriptors reported for build 1001 works , and has not been 
regressed..

I have just tried your code on Linux, and it seems to work as expected, i.e. 
pings seen on the server immediately after they are sent. So you may want to 
consider switching OS.

HTH

-- 
Brian Raven 
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient or have received this e-mail in error, please advise 
the sender immediately by reply e-mail and delete this message and any 
attachments without retaining a copy.

Any unauthorised copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs