winsock - Missed connections using select() on many non-blocking connecting TCP sockets on windows XP -
I have a small portable device that connects around 150 servers at various locations so that they can be checked immediately. It is important to retrieve the position of all servers relatively quickly to the user so that the device connects to the server in parallel to connect non-intercept, and select to select when each socket is ready () Uses Selection () Is quite straightforward, and the device has failed now and works well on Linux. It runs on Windows XP, but the connections of most of the servers present there are not complete. The device revolves around the call to connect to avoid making the CN feel like a flood. It connects approximately 100 messages to a server. I also have a check to make sure that FD_SETSIZE has not been violated. I have evidence from someone else that behavior is better in Windows versions later, but is not able to verify.
I have used WinDump to verify that the sync packet is being sent, and I can see that one packet is returning, but selection () returns zero, And this code can not connect to most of the servers currently available, and I can connect properly to Linux with the same code.
Has anyone solved or resolved several issues that many non-blockers and selects on Windows XP?
After another day of excavation or so many days I feel that the answer has been found. There is a limit of 10 concurrent connecting socket systems on Windows XP SP2. If 10 or more half-open connections are present, then a system event is logged, it is worth noting that the limit has reached, and the new connecting sockets are quietly imposed. The system event number is 4226.
I have set up my code by adding version check for Windows XP, and have messed up the system for at least 10 connections. I have not received any reports of other versions till now.
Comments
Post a Comment