我充当服务器,它从套接字中的客户端接收多个请求,并在线程中处理。如果每个TCP连接请求的最大数量
我应该在TCP级别设置任何参数来设置连接可以同时处理的最大请求数? 因为在我的服务器端,如果处理请求的速度很慢我观察到的其他请求正在排队(客户说请求已经发出,但我收到已故)
请指引我
我充当服务器,它从套接字中的客户端接收多个请求,并在线程中处理。如果每个TCP连接请求的最大数量
我应该在TCP级别设置任何参数来设置连接可以同时处理的最大请求数? 因为在我的服务器端,如果处理请求的速度很慢我观察到的其他请求正在排队(客户说请求已经发出,但我收到已故)
请指引我
如果它需要很长有时间做这项工作,并且你想同时处理多个连接,你必须改变你的工作方式。
如果您在处理长请求期间主动使用大量CPU,则需要多个线程。这是实际获得更多CPU时间/秒的唯一方法 - 假设您有多个可用内核。
如果您正在等待文件IO等内容,则可以使用异步处理来处理单个线程上的请求,但一次只能处理一小段内容。
设置最大数量的TCP连接不会帮助您更快速地处理更多进程。它只会拒绝连接,甚至不允许先到先得的行为类型 - 如果特定的客户端通过或不通过,它将是随机的。
没有最大值,你不能设置一个,如果可以的话,它不会解决你的问题。每个连接的请求都是顺序的,而你的问题是并发性,或者说缺少它。您需要在单独的线程中处理每个客户端套接字。 – EJP
我正在以多线程的方式处理请求。请求在持续的TCP连接中依次进入,等待响应,直到它向我发送下一个请求,或者它独立于天气,我为之前的请求发送响应。 – jan
如果您已经'以多线程的方式处理[连接或]请求',即使不是不可能看到您的问题实际上是什么也很困难。如果您的客户端可能会通过已建立的连接行事,那么与设置每个连接的最大请求数量无关。 – EJP