C++ 我们如何判断远程服务器是否是多线程的?

C++ 我们如何判断远程服务器是否是多线程的?,c++,multithreading,network-programming,unix,C++,Multithreading,Network Programming,Unix,我的客户没有向我提供有关其应用程序性质的详细信息。可能吧 可能不是多线程的。他的服务器提供SOAP消息(http请求) 为了理解对等机是单线程还是多线程,有什么特殊的技巧吗 我不想询问客户,也无法访问他的服务器/机器。我想自己找 不幸的是,没有,至少没有直接访问计算机。多个连接甚至可以由一个线程来管理,不过好消息是这不太可能。大多数服务器使用线程池,并在握手时为连接分配线程。你需要知道有什么特别的原因吗?如果你想在这台服务器上工作,你会直接知道它是如何工作的。不幸的是,没有,至少没有直接访问计算

我的客户没有向我提供有关其应用程序性质的详细信息。可能吧 可能不是多线程的。他的服务器提供SOAP消息(http请求)

为了理解对等机是单线程还是多线程,有什么特殊的技巧吗


我不想询问客户,也无法访问他的服务器/机器。我想自己找

不幸的是,没有,至少没有直接访问计算机。多个连接甚至可以由一个线程来管理,不过好消息是这不太可能。大多数服务器使用线程池,并在握手时为连接分配线程。你需要知道有什么特别的原因吗?如果你想在这台服务器上工作,你会直接知道它是如何工作的。

不幸的是,没有,至少没有直接访问计算机。多个连接甚至可以由一个线程来管理,不过好消息是这不太可能。大多数服务器使用线程池,并在握手时为连接分配线程。你需要知道有什么特别的原因吗?如果你想在这台服务器上工作,你会直接知道它是如何工作的。

这是不相关的。为什么你觉得这对你很重要

一个更有用的问题是:

服务器是否可以接受多个 同步会话

答案可能是“是的,当然”,但实现一个不能支持多个会话的服务器肯定是可能的

仅仅因为服务器支持多个会话,并不意味着它是多线程的。而且,仅仅因为它是多线程的,并不意味着它将具有良好的性能。当服务器需要支持数百或数千个会话时,多线程可能是一个性能非常差的选择


你问这个问题是因为你想在同一个连接上“重叠”SOAP消息——换句话说,让三个线程发送请求,然后三个线程都等待响应?这是行不通的,因为(像HTTP)请求和响应消息在每个连接上都是成对的。您需要打开三个连接才能有三条重叠的消息。

这与此无关。为什么你觉得这对你很重要

一个更有用的问题是:

服务器是否可以接受多个 同步会话

答案可能是“是的,当然”,但实现一个不能支持多个会话的服务器肯定是可能的

仅仅因为服务器支持多个会话,并不意味着它是多线程的。而且,仅仅因为它是多线程的,并不意味着它将具有良好的性能。当服务器需要支持数百或数千个会话时,多线程可能是一个性能非常差的选择



你问这个问题是因为你想在同一个连接上“重叠”SOAP消息——换句话说,让三个线程发送请求,然后三个线程都等待响应?这是行不通的,因为(像HTTP)请求和响应消息在每个连接上都是成对的。您需要打开三个连接才能有三条重叠的消息。

服务器是否是多线程的无关紧要。如果您担心的是这一点的话,有一些很好且有效的方法可以在没有线程的情况下实现I/O多路复用[如select(2)等]。

服务器是否具有多线程并不重要。如果您担心的话,有一些很好且有效的方法可以在没有线程的情况下实现I/O多路复用[如select(2)等]。

我确实关心请求的顺序和功能的性能。此外,它可能会使用某种连接池。@cate多线程并不意味着高(或低)性能。在许多情况下,这种观点可能是正确的。我建议你问问客户,它可能是多线程的,也可能不是。将来它可能会改变。即使它是多线程和高性能的,它也可能不是线程安全的。我确实关心请求的顺序和功能的性能。此外,它可能使用某种连接池。@cate多线程并不意味着高(或低)性能。在许多情况下,这种观点可能是正确的。我建议你问问客户,它可能是多线程的,也可能不是。将来它可能会改变。即使它是多线程和运动型高性能的,也可能不是线程安全的。如果他的实现是单线程的,我也将实现单线程。为了什么目的?你在写一个程序来和服务器对话?如果您打算同时使用多个连接,那么您只需要多个线程,尽管通常情况下这不是必需的。只有服务器需要担心多个连接,而不是客户端。如果他的实现是单线程的,我也会实现单线程。目的是什么?你在写一个程序来和服务器对话?如果您打算同时使用多个连接,那么您只需要多个线程,尽管通常情况下这不是必需的。只有服务器需要担心多个连接,而不是客户端。感谢您的分析。接下来的问题是,我们如何确定服务器是否可以同时接受多个会话?只需尝试同时打开两个连接即可。如果第二个失败了,你就会知道。而且,您可以在一个线程中完成此测试。感谢您的分析。接下来的问题是,我们如何确定服务器是否可以同时接受多个会话?只需尝试同时打开两个连接即可。如果第二个失败了,你就会知道。而且,您可以在一个线程中进行此测试。