开发者

64 connection limit using an application written in c++ **HELP**

I work for a large company that uses a client / server application. We recently rolled out this application with dire results.

Background : There are 2 applications 1: A Server application that accepts connections on port 9000. ans 2: A Client application programmed to make a connection to a map server on port 9000.

When running the client application in our citrix environment we seem to always have the client app successfully get initiated exactly 64 times then any further connections from clients get a connect error dialogue displayed by the application.

When approaching the vendor they state there is nothing wrong with their application !!!! We have tried running the server app on a windows 2003 and 2008 box to no avail.

We have even setup the software in a basic Win XP desktop environment with the same result.

If one of the 64 established connections is terminated the next client to request a connection is granted.开发者_运维问答

The vendor states to setup a server software version on each Citrix box delivering to its own client connections but this is against the advertised software capabilities.

We have tried programs such as TCPview but these state that the connection is established yet the client application displays a "Cannot connect to server" message, upon clicking ok on the message the connection is dropped.

In short does anyone know of a way to determine where the connection limit resides in lamens terms. Can I display this somehow to prove to the vendor it is their software.

They mentioned it was written in C++ and I found a few thread on the net regarding some limit in socket connections for programs written in C++ using WSAEventSelect.

Been troubleshooting this issue for 5 days !!! Going Mad !!!

Thanks to all Stackoverflow members / visitors for having a place to raise such queries.


This thread: how break the 64 limit when using WSAEventSelect seems to point at a solution for your problem.

However, you obviously don't have the possibility to patch the software yourself, therefore the whole problem will be to convince the vendor that you know exactly what the problem is and what the solution is :)

To prove that the software is using WSAEventSelect, you can use the great Dependancy Walker tool to search for an used import of this function in one of the exe or dll files of the server, assuming your end-user license allows you to do such things as reverse-engineer the program.

Hopefully, you can convince the vendor by pointing to the link above.


Well, have you done any old fashioned debugging? Not just watching TCPView, I mean really delving into the code and stepping through, watching return and error codes. The number 64 sounds a lot like the WaitForMultipleObjects()'s MAXIMUM_WAIT_OBJECTS limit.


You need to set up proxies. You can then have up to 64 proxies and they can accept up to 64 connections each, and you can have 4096 connections.

If you need more than that, then proxies to proxies...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜